Convertir par lots des lat longs en UTM?

11

J'ai un fichier .csv qui contient une longue liste de points de latitude et de longitude. Existe-t-il un moyen efficace de convertir par lots la liste en un système de coordonnées UTM projeté?

hpy
la source

Réponses:

8

Le moyen le plus simple est peut-être d'utiliser quelque chose comme QGIS et son plugin de texte délimité pour importer puis exporter les données. Si vous cherchez quelque chose en ligne de commande et évolutif, alors l'approche VRT mentionnée par Sasa est bonne.

Vous pouvez également le faire avec des entrées et des sorties de fichiers en utilisant gdaltransform:

gdaltransform -s_srs epsg:4326 -t_srs epsg:25832 < space-delimited-coordinates.txt

Et si vous avez besoin d'un accès plus programmatique aux résultats, consultez la réponse de geographika en utilisant pyroj pour une question connexe.

scw
la source
Pouvez-vous être plus précis sur la façon dont je dois exporter les données dans QGIS? J'ai essayé de faire un clic droit sur le calque importé avec les points, cliquez sur Enregistrer sous ..., et spécifié UTM 16N comme mon système de coordonnées projeté. Mais le fichier résultant n'a pas été modifié!
hpy
Je peux.Après avoir chargé le CSV, pointez simplement sur la règle de calque, puis enregistrez sous> Crs sélectionné> Sélectionnez le système à transformer en> et enregistrez. si vous voulez ensuite revenir à CSV dfsfsd
yair suari
quelques problèmes d'édition. si vous souhaitez revenir à csv, utilisez le calculateur d'attributs et calculez les valeurs $ x et $ y sur les fonctions de géométrie pour obtenir l'emplacement sur le nes crs l'enregistrer à nouveau en tant que csv
yair suari
9

Avec arcmap,
ajoutez le csv et utilisez les lat longs pour créer une table d'événements. (couche de clic droit> "Afficher les données XY")

Cela crée une couche d'événements avec la table et une couche de points (pas une vraie couche de points, elle doit être exportée plus tard)

afficher xy

définissez la projection du document (propriétés du bloc de données) sur la sortie souhaitée du fichier. (clic droit sur les calques "dans la table des matières"> propriétés> onglet système de coordonnées).

Doc prop

projection souhaitée

faites un clic droit sur le calque dans la table des matières> Exporter les données

exportation

Utilisez l'option pour "utiliser le même système de coordonnées que: le bloc de données"

exportation

Brad Nesom
la source
7

ogr2ogr devrait être capable de gérer cela (vous pouvez télécharger FWTools pour une installation rapide).

Ce fil illustre comment reprojeter des données CSV. Pour résumer, vous devrez créer un fichier VRT contenant des références aux colonnes CSV:

<OGRVRTDataSource>
    <OGRVRTLayer name="test">
        <SrcDataSource>test.csv</SrcDataSource>
        <GeometryType>wkbPoint</GeometryType>
        <GeometryField encoding="PointFromColumns" x="RW" y="HW"/>
    </OGRVRTLayer>
</OGRVRTDataSource>

Et puis exécutez ogr2ogr pour la reprojection:

ogr2ogr -s_srs "epsg:31466" -t_srs "epsg:25832" -f "CSV" -lco GEOMETRY=AS_XY -sql "SELECT PNR FROM test" temp_dir test.vrt

Vous devrez remplacer epsg: 31466 par le code EPSG approprié pour votre système de coordonnées UTM.

Sasa Ivetic
la source
4

Corpscon , un outil gratuit du US Army Corps of Engineers vous permettra de convertir par lots lat / long vers / depuis UTM. Notez qu'il est limité aux États-Unis et peut fonctionner au Canada .


la source
3

Si je comprends bien, vous ne voulez pas simplement reprojeter un fichier, vous voulez convertir les coordonnées elles-mêmes et avoir un nouveau fichier avec les nouvelles coordonnées. Si vous "convertissez lat / lon en utm" sur Google, vous devriez trouver des feuilles de calcul Excel qui effectueront cette conversion (par exemple à l'Université du Wisconsin Green Bay ou dans la réponse de whuber ci-dessus). Ou, vous pouvez acheter des logiciels comme AllTrans ou Franson Coordtrans, qui convertissent par lots vers et depuis de nombreux systèmes de coordonnées différents.

Ou, moins simple mais plus pédagogique, est d'apprendre la syntaxe pour gdal ou FWTools.

Rudi
la source
3

Pour une solution de script, vous pouvez utiliser pyproj :

import sys
import csv
import pyproj

# example invocation
# ./reproj.py ./file.csv 32619 4326

if (len(sys.argv) != 4):
    print '%s <csvfile> <epsg_code_in> <epsg_code_out>' % sys.argv[0]
    sys.exit(1)
else:
    p1 = pyproj.Proj(init='epsg:%s' % sys.argv[2])
    p2 = pyproj.Proj(init='epsg:%s' % sys.argv[3])

    f = open(sys.argv[1], 'r')
    table = csv.reader(f)
    for row in table:
        print '%s %s' % (row[1], row[2])
        newxy = pyproj.transform(p1, p2, row[1], row[2])
        print '%s %s' % (row[0], newxy[0], newxy[1])
    f.close()
tomkralidis
la source
Merci, collègue programmeur! NB: cela fonctionnera si votre fichier CSV comprend 3+ colonnes, vos données xy étant les deuxième et troisième colonnes. J'ai juste dû ajuster un peu les index car mes entrées x / y sont dans les deux premières colonnes. Si clair, extensible et réutilisable!
Ahmed Fasih
2

Le nouveau site suivant convertit les fichiers en ligne. (Il utilise pyproj)

Il génère également du KML et le fichier d'entrée peut souvent être laissé tel quel et non reformaté pour intégrer le programme de conversion.

Sorry i cant post a numeric domain so have to wrap it in a code block!
http://54.251.49.75/XYZ_tools

Veuillez couper et coller le lien pour le suivre.

Ninga
la source
Supprimé. Cela me coûte 120 $ par an + temps d'administration avec trop peu d'utilisateurs. Pardon.
Ninga
1

Je n'irais pas pour la solution ARC; pour ces conversions courantes, il existe de nombreux outils en ligne tels que http://www.hamstermap.com - il suffit de copier et coller une liste de coordonnées et vous les obtiendrez instantanément converties.

Petra Hauerlandova
la source
Un meilleur convertisseur de lots en ligne pour Lon / Lat en UTM se trouve à < zonums.com/online/coords/cotrans.php?module=13 > L'outil hamstermap semble changer les coordonnées d'entrée, tandis que l'outil zonums ne gâche pas la les données d'entrée, ainsi que les zonums, on travaille pour les données mondiales - uniquement dans WGS84, mais cela vous permet de définir la zone. Attention, vous sélectionnez la bonne option parmi lat / lon ou lon / lat. L'outil Zonums donne des résultats corrects et est certainement plus facile à utiliser que de jouer avec des scripts ou autre chose.
IanS