-
Notifications
You must be signed in to change notification settings - Fork 1
CorrectBorderForMark
Adrian Quintana edited this page Dec 11, 2017
·
1 revision
#!/usr/bin/env python
import sys, string # to use argv, to use string.split
if(len(sys.argv) != 5):
print " "
print "\n"
print "Usage:\n"
print sys.argv[0] + " 'box size' " + " 'file.raw.inf' " + " 'input pos file' " + " 'corrected pos file' "
else:
fileinput1=sys.argv[2] #header raw file
fileinput2=sys.argv[3] #pos file
fileoutput1=sys.argv[4] #pos file corrected
box=int(sys.argv[1]) #box size
mitadbox=box/2
input1=open(fileinput1,'r') #input file
input2=open(fileinput2,'r') #input file
output1=open(fileoutput1,'w') #output file
#Read X and Y dimension from file.raw.inf
linea1=input1.readline()
while(linea1 != ''):
lista1=string.split(linea1)
if(lista1[0] !="#"):
if (lista1[0] == "Xdim="):
Xdim = int(lista1[1])
if (lista1[0] == "Ydim="):
Ydim = int(lista1[1])
linea1=input1.readline()
limitX=Xdim-mitadbox
limitY=Ydim-mitadbox
#Read pos file to correct coordinates near to the border
output1.write("# <X position> <Y position> ")
output1.write("\n")
linea2=input2.readline()
while(linea2 != ''):
lista2=string.split(linea2)
if len(lista2) == 2:
posX=int(lista2[0])
posY=int(lista2[1])
if (posX < mitadbox):
newX=mitadbox
elif (posX > limitX):
newX=limitX
else:
newX=posX
if (posY < mitadbox):
newY=mitadbox
elif (posY > limitY):
newY=limitY
else:
newY=posY
output1.write(str(newX))
output1.write(" ")
output1.write(str(newY))
output1.write("\n")
linea2=input2.readline()
input1.close()
input2.close()
output1.close()