Je doute qu'un récepteur GPS mettrait des coordonnées UTM. Il me semble que la latitude et la longitude sont en degrés/minutes/secondes (DDMMSS). Si oui, alors une façon de le faire est la suivante, en simple Python. Le Convert Coordinate Notation tool dans ArcGIS peut être utile, mais vous devrez d'abord reformater les données, probablement en utilisant Python.
import csv
import sys
# A function that takes 211234, treats it as 21°12'34",
# and returns 21.209444.
def convertToDegrees(DMS):
dms = DMS
dms = int(dms)
seconds = dms % 100
if 60 <= seconds:
print "More than 60 seconds! " + str(DMS) + " is not degrees/minutes/seconds!"
dms /= 100
minutes = dms % 100
if 60 <= minutes:
print "More than 60 minutes! " + str(DMS) + " is not degrees/minutes/seconds!"
dms -= minutes
degrees = dms/100
degrees += (minutes/60.0)
degrees += (seconds/(60.0 * 60.0))
if 180 < degrees or -180 > degrees:
print "In " + str(DMS) + ", degrees is outside [-180, 180]: " + str(degrees)
return degrees
# Input and output files from command line parameters
inFilename = sys.argv[1]
outFilename = sys.argv[2]
readFirstRow = False
with open(inFilename, "rb") as inFile:
reader = csv.reader(inFile)
with open(outFilename, "wb") as outFile:
writer = csv.writer(outFile)
# Loop through the rows
for row in reader:
if (not readFirstRow):
# Write the header row only once
writer.writerow(["ID", "latitude", "longitude"])
readFirstRow = True
else:
# Convert this row to latitude and longitude
latitude = 0
longitude = 0
if "-9" != row[1]:
latitude = convertToDegrees(row[1])
if "-9" != row[2]:
latitude = -1 * convertToDegrees(row[2])
if "-9" != row[3]:
longitude = convertToDegrees(row[3])
if "-9" != row[4]:
longitude = -1 * convertToDegrees(row[4])
writer.writerow([row[0], latitude, longitude])
Pour vous assurer d'obtenir ce droit, vous aurez envie de confirmer que le GPS éteignait latitude et la longitude et savoir quelle donnée il utilisé (probablement 1984 WGS).
Merci @Gary S., J'ai vérifié avec ma source de données, et ce sont des données GPS UTM. -9 indique les données manquantes. Ils manquent juste l'information de zonage. Merci quand même. – Chen