Skip to content

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()	
	


Clone this wiki locally