Suite

Gestion arcpy des virgules flottantes


Cela découle de ma propre question Comment gérer la précision des coordonnées dans ArcGIS où j'ai essayé d'utiliser la documentation intitulée Utilisation d'objets géométriques avec des outils de géotraitement comme référence.

J'ai un tableau avec des coordonnées en degrés :

J'ai créé une table d'événements et l'ai ajoutée à la vue avec le système de coordonnées 'GCS_NZGD_2000 WKID: 4167 Authority: EPSG'. J'ai converti ce point unique en fichier de formes, défini sa projection et calculé les coordonnées du point à l'aide de l'outil "Ajouter des attributs de géométrie". Ceci est le tableau résultant avec des nombres comme prévu :

Pour reproduire cela dans arcpy, j'ai utilisé ce code :

corners =[[174,73,-36,76]] p=[arcpy.PointGeometry(arcpy.Point(*coords)) pour les coordonnées dans les coins] arcpy.CopyFeatures_management(p, "d:/rubbish/points.shp")

J'ai ajouté la sortie "points.shp" à la vue, la projection définie et les coordonnées calculées du point à l'aide de l'outil "Ajouter des attributs de géométrie". Voici le tableau résultant :

Comme on peut le voir sur la photo ci-dessous la distance entre 2 points supposés identiques est proche de 10 mètres :

Cependant, lorsque j'ai mis à jour l'ensemble de données existant avec projection définie utilisant

infc =r'd:scratchfrom_xy.shp' outRows = arcpy.da.InsertCursor(infc,("[email protected]","X")) feat = (arcpy.Point(174.73,-36.76),0) outRows .insertRow(feat)

Ça a marché. Cours:

  1. N'utilisez pas d'exemples similaires à la documentation intitulée Utilisation d'objets géométriques avec des outils de géotraitement
  2. Définissez la projection de l'ensemble de données avant tout jeu avec des géométries.

La documentation intitulée Utilisation d'objets géométriques avec des outils de géotraitement doit-elle être révisée ?


Comme demandé… poster mon commentaire ici

Utilisez un objet de référence spatiale, qui, je pense, prend en charge la géométrie des points, consultez l'aide. Si un système de coordonnées défini n'est pas utilisé, la précision simple est utilisée dans les calculs. Les références à ce phénomène sont documentées sur ce site et sur geonet et un commentaire n'est pas le lieu de les mettre. Pas de SR… =… résultats inexacts - Dan Patterson il y a 33 minutes