Suite

Les outils de géométrie arcpy donnent des résultats incorrects ?

Les outils de géométrie arcpy donnent des résultats incorrects ?


Je suis nouveau sur python et arcpy mais j'ai essayé d'apprendre à exécuter des outils de géotraitement à l'aide d'arcpy. J'ai (pour cet exemple) 2 fichiers de formes, a et b, qui sont tous deux des polygones. En les traçant dans arcMap, je sais que b se trouve entièrement dans a.

Je voudrais écrire un script qui prendra ces deux fichiers de formes et me donnera une réponse Vrai/Faux pour savoir si un polygone contient ou non l'autre. Je pensais utiliser la fonction arcpy.Geometry.contains().

J'ai ce qui suit :

>>> a_shp="C:Datashapefile_a.shp" >>> b_shp="C:Datashapefile_b.shp" >>> #lire comme géométrie >>> a=arcpy.CopyFeatures_management (a_shp, arcpy.Geometry()) >>> b=arcpy.CopyFeatures_management(b_shp, arcpy.Geometry()) >>> arcpy.Geometry.contains(a[0],b[0]) Faux >>> arcpy .Geometry.contains(b[0],a[0]) #peut-être que je me suis trompé de commande ? Essayer l'autre ordre False >>> #Peut-être que je me trompe de syntaxe, en essayant autre chose >>> a[0].contains(b[0]) False >>> b[0].contains(a[0 ]) Faux

Je ne reçois aucun message d'erreur, mais il est clair que quelque chose ne fonctionne pas correctement. Est-ce que je fais ça correctement ?


uneetbseront des objets résultat dans ce cas. Vous devrez ouvrir deux curseurs de recherche et retirer le champ de forme de chacun pour utiliser l'opérateur contient. Quelque chose comme ça:

pour row1 dans arcpy.SearchCursor(shapefile1) : pour row2 dans arcpy.SearchCursor(shapefile2) : si row1.shape.contains(row2.shape) : renvoie True

Voir la vidéo: ArcGIS - Tabulate Area