Suite

Tampons vides ArcPy


J'ai écrit un script ArcPy pour traiter un MNT en une classe d'entités ponctuelles à utiliser dans la classification et le classement des reliefs. Il produit avec succès ce dont j'ai besoin la plupart du temps.

De manière aléatoire, l'étape du polygone tampon produit une classe d'entités vide. Si je lance le même processus "à la main", cela fonctionne. Si j'exécute à nouveau le script, ou à partir d'une valeur juste avant son échec, cela fonctionne également. Le problème n'est pas cohérent, il peut le faire sur la 3ème boucle, ou la 300ème boucle.

J'ai essayé d'atténuer ce problème en vérifiant mes instructions de suppression de variable (gestion des fuites de mémoire) et en écrivant un compte get suivi d'une instruction "if" qui exécute un "compact", "réparer la géométrie", "ajouter un index spatial" , "Supprimer la dernière classe d'entités tampons", et "re tamponner". Mais en vain. La première partie du script est ci-dessous… Toutes les idées seraient les bienvenues…

import arcpy import winsound ######## Vérifiez toutes les licences nécessaires arcpy.CheckOutExtension("spatial") de arcpy.sa import * ######## Script arguments FolderLocation = "C:Data Basin" InRaster = "C:DataDEMBasin1" GDB = "C:DataBasin1.gdb" LandForm = GDB+"LandForm" TempP = GDB+"TempP" TopVal = 1037 ProcessingVal = 772 BotVal = 150 Range = TopVal-BotVal Range2 = ProcessingVal - BotVal Range3 = Range2 print "Il y a : "+ str(Range) +" valeurs dans ce raster. Avec : " +str(Range2) + " à traiter" print " " #### Conventions de nommage SingleValue = "s_" BandValue = "b_" CountValue = "r_" LandFormIValue = "u_" PNeigbours = "p_" Frequency = "f_" BufferName = "buf_" MultiName =" m_" IntName = "i_" DisName = "d_" MegaBuffCount = 0 MegaMultiCount = 0 MegaCount = ProcessingVal +1 while (MegaCount) > (BotVal): MegaCount = (MegaCount-1) ## Reclasser les valeurs simples SingleValueName = SingleValue + str( MegaCount) + ".tif" SingleValueNamePath = FolderLocation + SingleValueName SingleValuePol ygonName = SingleValue + str(MegaCount) SingleValuePolygonNamePath = GDB+""+SingleValuePolygonName SingleValueCountName = CountValue + str(MegaCount)+".tif" SingleValueCountNamePath = FolderLocation + SingleValueCountName LandFormIncrementName = LandFormIValue + str(MegaCount) +".Increment FolderLocation + LandFormIncrementName RC1 = str(BotVal) RC2 = str(MegaCount -1) NODATA = "NODATA" RC3 = str(MegaCount) RC4 = str(TopVal) Val = 1 Equ = "{0} {1} {2} ; {3} {4} {5}".format (RC1,RC2,NODATA,RC3,RC4,Val) print "Numéro de processus : " + str(Range2) + " Valeur de hauteur : "+ str(MegaCount) + " Nombre Traité: " +str(int(Range3)- int(Range2)) print "A: Raster S Single Band:" + str(Range2) + " Equ: " +str(Equ) Range = Range -1 Range2 = Range2- 1 Raster = arcpy.sa.Reclassify(InRaster,"Value",Equ, "NODATA") Raster.save(SingleValueNamePath) ## Vers Poly arcpy.RasterToPolygon_conversion(SingleValueNamePath, SingleValuePolygonNamePath, "NO_SIMPLIFY", "Value") print "B : Conversion Polygon: "+ SingleValuePolygonNamePath ####### TEST DIAGONALS print " B1: Processing Diagonals" BufferNearName = BufferName + str(MegaCount) BufferNearNamePath = GDB+"" + BufferNearName MultiPartName = MultiName + str(MegaCount) MultiPartNamePath = GDB+"" + MultiPartName IntersectName = IntName + str(MegaCount) IntersectNamePath = GDB+"" + IntersectName DissolveName = DisName + str(MegaCount) DissolveNamePath = GDB+"" + DissolveName #Référence spatiale : GDA 94 Z50 sr = arcpy.Spatia lReference(28350) arcpy.Buffer_analysis(SingleValuePolygonNamePath,BufferNearNamePath,"100 décimeters","FULL","ROUND","ALL","") bufcount = arcpy.GetCount_management(BufferNearNamePath) result_value = bufcount[0] buffercount = int( result_value) MegaBuffCount = MegaBuffCount + buffercount si buffercount == 0: print "DANGER!!!!!!!!" arcpy.Delete_management(BufferNearNamePath) arcpy.Compact_management(GDB) arcpy.RepairGeometry_management (SingleValuePolygonNamePath) arcpy.AddSpatialIndex_management(SingleValuePoly,0 ) arcpy.Buffer_analysis(SingleValuePolygonNamePath,BufferNearNamePath,"100 décimètres","FULL","ROUND","ALL","") winsound.PlaySound("SystemHand", winsound.SND_ALIAS) print " B2: Buffer Error: " + str(bufcount) +" polygones. Ce traitement s'exécute : " + str(MegaBuffCount) bufcount2 = arcpy.GetCount_management(BufferNearNamePath) result_value2 = bufcount2[0] buffercount2 = int(result_value2) if buffercount2 == 0 : arcpy.Delete_management(BufferNearNamePath) arcpy.DeleteName_management(SingleValueName) Delete_management(SingleValuePolygonNamePath) winsound.PlaySound("SystemHand", winsound.SND_ALIAS) winsound.PlaySound("SystemHand", winsound.SND_ALIAS) STOP # Erreur délibérée else: print " B2: Buffer: " +str(bufcount) +" polygones. Cette exécution de traitement : " + str(MegaBuffCount) arcpy.MultipartToSinglepart_management(BufferNearNamePath,MultiPartNamePath) Multicount = arcpy.GetCount_management(MultiPartNamePath) Mulresult_value = Multicount[0] MulCount = int(Mulresult_value) MegaMultiCount = MegaMultiCount + MultiPart print : " B3 : " +str(Multicount) +" polygones. Ce traitement s'exécute : "+ str(MegaMultiCount)

ArcGIS 10.1 présente quelques bogues lorsqu'il s'agit de travailler avec des tampons. Surtout avec les tampons géodésiques et la méthode de type dissolve "all". (NIM083208, NIM082599, NIM086086, NIM087868, NIM087913). Je suis passé à un système projeté, puis j'ai séparé le composant tampon dans son propre module et les erreurs aléatoires se sont arrêtées.


J'ai vu ce problème dans l'une de mes applications qui a des exigences de géotraitement considérables.

Dans mon cas, j'ai vu des symptômes très similaires en l'exécutant avec 4 Go de RAM sur plusieurs machines.

J'ai ensuite testé sur plusieurs machines avec 12 Go de RAM et cela fonctionnait proprement.

Mon conseil est d'essayer de le tester sur une machine avec plus de RAM avant de consacrer plus d'efforts à essayer de déboguer.

Si vous avez besoin d'ajouter de la RAM pour le faire fonctionner au prix de quelques centaines de dollars, ce sera de l'argent bien dépensé.


Propriétés

Fournit la possibilité d'obtenir ou de définir les informations sur les crédits de la trame de données.

Fournit la possibilité d'obtenir ou de définir les informations de description de la trame de données.

Permet d'obtenir ou de définir les unités de distance de la trame de données.

La hauteur de l'élément en unités de page. Les unités attribuées ou rapportées sont en unités de page.

L'emplacement X de la position d'ancrage de l'élément de bloc de données. Les unités attribuées ou rapportées sont en unités de page.

L'emplacement Y de la position d'ancrage de l'élément de bloc de données. Les unités attribuées ou rapportées sont en unités de page.

La largeur de l'élément en unités de page. Les unités attribuées ou rapportées sont en unités de page.

Fournit la possibilité d'obtenir ou de définir l'étendue de la carte du bloc de données à l'aide des coordonnées de la carte (c'est-à-dire des unités de la carte). Une copie de l'objet Etendue doit être effectuée avant de modifier ses propriétés. La copie modifiée est ensuite utilisée pour définir les nouvelles propriétés d'étendue. Remarque : si vous essayez de définir l'étendue en référençant simplement l'objet Etendue, les modifications ne seront pas enregistrées. Par exemple, df.extent.xMin = une valeur ne fonctionnera pas.

Si le rapport hauteur/largeur de l'étendue ne correspond pas à la forme du bloc de données, l'étendue finale sera ajustée pour s'adapter à la nouvelle étendue dans la forme du bloc de données. En d'autres termes, si vous définissez des coordonnées X, Y explicites, vous risquez de ne pas obtenir les mêmes valeurs renvoyées si vous essayez de les lire plus tard.

Remarque : Les propriétés de l'objet Etendue sont par défaut en lecture seule dans le système d'aide. Une exception spéciale a été faite pour l'environnement de script arcpy.mapping pour permettre la modification des étendues pendant un processus d'automatisation de carte.

Permet d'obtenir ou de définir la ou les transformations géographiques du bloc de données. La propriété renverra le(s) nom(s) de la ou des transformations dans une liste. Seuls les noms de transformation prédéfinis existants (ou leur valeur de code correspondante) peuvent être utilisés pour définir une transformation géographique.

Une liste complète des transformations et des valeurs de code est disponible sur le Centre de ressources ArcGIS.

La propriété GeographicTransformations ne peut pas être utilisée pour créer des transformations personnalisées. Seules les méthodes prédéfinies peuvent être référencées.

Il y a toujours une transformation géographique chargée dans une carte par défaut : NAD_1927_To_NAD_1983_NADCON. Cela sera écrasé lors de la définition d'une nouvelle liste. Les transformations géographiques peuvent également être effacées en définissant une liste vide.

Les exemples suivants définiront deux méthodes de transformation à l'aide de chaînes de noms. Le premier de NAD27 à NAD 83 et le second de NAD83 à HARN. Le deuxième exemple fait la même chose mais utilise des codes de transformation à la place.

Renvoie une valeur de chaîne qui indique les unités de mappage de bloc de données actuelles. Celles-ci sont basées sur le système de coordonnées actuel du bloc de données.

Permet d'obtenir ou de définir le nom du bloc de données tel qu'il apparaît dans la table des matières d'un document ArcMap ainsi que le nom réel de l'élément dans la mise en page.

Permet d'obtenir ou de définir l'échelle de référence du bloc de données. Il s'agit de l'échelle à laquelle toutes les tailles de symbole et de texte utilisées dans le bloc de données seront rendues relatives.

Permet d'obtenir ou de définir la valeur de rotation du bloc de données. Il représente le nombre de degrés de rotation du bloc de données, mesuré dans le sens inverse des aiguilles d'une montre à partir du nord. Pour tourner dans le sens des aiguilles d'une montre, utilisez une valeur négative.

Permet d'obtenir ou de définir l'échelle actuelle du bloc de données actif. Une valeur numérique (double) doit être utilisée.

Donne accès à la SpatialReference de la trame de données. La référence spatiale contient des informations sur le système de coordonnées et les unités.

Renvoie l'objet DataFrameTime qui permet d'accéder au contrôle de l'affichage des couches temporelles.

Renvoie le type d'élément pour tout élément de mise en page donné.

  • DATAFRAME_ELEMENT — Élément de trame de données
  • GRAPHIC_ELEMENT — Élément graphique
  • LEGEND_ELEMENT — Élément de légende
  • MAPSURROUND_ELEMENT — Élément de contour de carte
  • PICTURE_ELEMENT — Élément d'image
  • TEXT_ELEMENT — Élément de texte

Présentation de la méthode

Construit la limite de la géométrie.

Construit un polygone à une distance spécifiée de la géométrie.

Construit l'intersection de la géométrie et de l'étendue spécifiée.

Indique si la géométrie de base contient la géométrie de comparaison.

contient est l'opposé de à l'intérieur.

Seules les relations vraies sont affichées dans cette illustration.

Construit la géométrie qui est le polygone de délimitation minimal de telle sorte que tous les angles extérieurs soient convexes.

Indique si les deux géométries se coupent dans une géométrie d'un type de forme inférieur.

Deux polylignes se croisent si elles ne partagent que des points en commun, dont au moins un n'est pas une extrémité. Une polyligne et un polygone se croisent s'ils partagent une polyligne ou un point (pour une ligne verticale) en commun à l'intérieur du polygone qui n'est pas équivalent à la polyligne entière.

Seules les relations vraies sont affichées dans cette illustration.

Construit la géométrie composée uniquement de la région unique de la géométrie de base mais ne faisant pas partie de l'autre géométrie. L'illustration suivante montre les résultats lorsque le polygone rouge est la géométrie source.

Indique si les géométries de base et de comparaison ne partagent aucun point commun.

Deux géométries se coupent si disjoint renvoie False .

Seules les relations vraies sont affichées dans cette illustration.

Renvoie la distance minimale entre deux géométries. Si les géométries se coupent, la distance minimale est 0.

Les deux géométries doivent avoir la même projection.

Indique si les géométries de base et de comparaison sont du même type de forme et définissent le même ensemble de points dans le plan. Il s'agit d'une comparaison 2D, seules les valeurs M et Z sont ignorées.

Seules les relations vraies sont affichées dans cette illustration.

Renvoie la zone de l'entité à l'aide d'un type de mesure.

Renvoie la longueur de l'entité à l'aide d'un type de mesure.

Renvoie un tableau d'objets ponctuels pour une partie particulière de la géométrie ou un tableau contenant un certain nombre de tableaux, un pour chaque partie.

Construit une géométrie qui est l'intersection géométrique des deux géométries en entrée. Différentes valeurs de dimension peuvent être utilisées pour créer différents types de formes.

L'intersection de deux géométries du même type de forme est une géométrie contenant uniquement les régions de chevauchement entre les géométries d'origine.

Pour des résultats plus rapides, testez si les deux géométries sont disjointes avant d'appeler intersect .

Indique si l'intersection des deux géométries a le même type de forme que l'une des géométries en entrée et n'est équivalente à aucune des géométries en entrée.

Seules les relations vraies sont affichées dans cette illustration.

Renvoie un point sur une ligne à une distance spécifiée du début de la ligne.

Projette une géométrie et applique éventuellement une géotransformation.

Pour projeter, la géométrie doit avoir une référence spatiale et non un UnknownCoordinateSystem . Le nouveau système de référence spatiale passé à la méthode définit le système de coordonnées de sortie. Si l'une des références spatiales est inconnue, les coordonnées ne seront pas modifiées. Les valeurs Z et de mesure ne sont pas modifiées par la méthode ProjectAs.

Construit la géométrie qui est l'union de deux géométries moins l'intersection de ces géométries.

Les deux géométries d'entrée doivent être du même type de forme.

Indique si les limites des géométries se coupent.

Deux géométries se touchent lorsque l'intersection des géométries n'est pas vide, mais que l'intersection de leurs intérieurs est vide. Par exemple, un point touche une polyligne uniquement si le point coïncide avec l'un des points d'extrémité de la polyligne.

Seules les relations vraies sont affichées dans cette illustration.

Construit la géométrie qui est l'union théorique des ensembles des géométries d'entrée.

Les deux géométries réunies doivent être du même type de forme.

Indique si la géométrie de base se trouve dans la géométrie de comparaison.

dans est l'opérateur opposé de contient .

Seules les relations vraies sont affichées dans cette illustration.


Méthode

La limite d'un polygone est une polyligne. La limite d'une polyligne est un multipoint, correspondant aux extrémités de la ligne. La limite d'un point ou d'un multipoint est un point ou un multipoint vide.

La distance tampon est dans les mêmes unités que la géométrie qui est tamponnée.

Une distance négative ne peut être spécifiée que par rapport à une géométrie polygonale.

La géométrie du polygone tamponné.

Objet d'étendue utilisé pour définir l'étendue du découpage.

Une géométrie en sortie découpée à l'étendue spécifiée.

Der boolesche Rückgabetyp True gibt an, dass diese Geometrie die zweite Geometrie enthält.

La géométrie résultante. L'enveloppe convexe d'un seul point est le point lui-même.

Der boolesche Rückgabetyp "True" gibt an, dass sich die beiden Geometrien in einer Geometrie mit einem geringeren Shape-Typ schneiden.

Der boolesche Rückgabetyp "True" gibt an, dass die beiden Geometrien keine gemeinsamen Punkte aufweisen.

La distance entre les deux géométries.

Une valeur booléenne de retour True indique que les deux géométries sont du même type de forme et définissent le même ensemble de points dans le plan.

Les mesures PLANAR reflètent la projection de données géographiques sur la surface 2D (en d'autres termes, elles ne prendront pas en compte la courbure de la terre). Les types de mesure GEODESIC , GREAT_ELLIPTIC , LOXODROME et PRESERVE_SHAPE peuvent être choisis comme alternative, si vous le souhaitez.

  • GÉODÉSIQUE — La ligne la plus courte entre deux points quelconques de la surface terrestre sur un sphéroïde (ellipsoïde). Une ligne géodésique est utilisée lorsque vous souhaitez déterminer la distance la plus courte entre deux villes pour la trajectoire de vol d'un avion. Ceci est également connu comme une grande ligne circulaire si elle est basée sur une sphère plutôt que sur un ellipsoïde.
  • GREAT_ELLIPTIC — La ligne sur un sphéroïde (ellipsoïde) définie par l'intersection à la surface d'un plan qui passe par le centre du sphéroïde et les points de départ et d'extrémité d'un segment. Ceci est également connu comme un grand cercle lorsqu'une sphère est utilisée.
  • LOXODROME — Un loxodrome n'est pas la distance la plus courte entre deux points, mais définit plutôt la ligne de relèvement constant, ou azimut. Les grands itinéraires circulaires sont souvent divisés en une série de loxodromes, ce qui simplifie la navigation. Ceci est également connu comme une ligne de rhumb.
  • PLANAIRE — La mesure planaire utilise les mathématiques cartésiennes 2D pour calculer les longueurs et les aires. Cette option n'est disponible que lors de la mesure dans un système de coordonnées projetées et le plan 2D de ce système de coordonnées sera utilisé comme base pour les mesures.
  • PRESERVE_SHAPE — Ce type calcule l'aire ou la longueur de la géométrie à la surface de l'ellipsoïde terrestre, pour la géométrie définie dans un système de coordonnées projetées ou géographiques. Cette option préserve la forme de la géométrie dans son système de coordonnées.

La zone de l'entité. Les surfaces sont toujours retournées en mètres carrés.

Les mesures PLANAR reflètent la projection de données géographiques sur la surface 2D (en d'autres termes, elles ne prendront pas en compte la courbure de la terre). Les types de mesure GEODESIC , GREAT_ELLIPTIC , LOXODROME et PRESERVE_SHAPE peuvent être choisis comme alternative, si vous le souhaitez.

  • GÉODÉSIQUE — La ligne la plus courte entre deux points quelconques de la surface terrestre sur un sphéroïde (ellipsoïde). Une ligne géodésique est utilisée lorsque vous souhaitez déterminer la distance la plus courte entre deux villes pour la trajectoire de vol d'un avion. Ceci est également connu comme une grande ligne circulaire si elle est basée sur une sphère plutôt que sur un ellipsoïde.
  • GREAT_ELLIPTIC — La ligne sur un sphéroïde (ellipsoïde) définie par l'intersection à la surface d'un plan qui passe par le centre du sphéroïde et les points de départ et d'extrémité d'un segment. Ceci est également connu comme un grand cercle lorsqu'une sphère est utilisée.
  • LOXODROME — Un loxodrome n'est pas la distance la plus courte entre deux points, mais définit plutôt la ligne de relèvement constant, ou azimut. Les grands itinéraires circulaires sont souvent divisés en une série de loxodromes, ce qui simplifie la navigation. Ceci est également connu comme une ligne de rhumb.
  • PLANAIRE — La mesure planaire utilise les mathématiques cartésiennes 2D pour calculer les longueurs et les aires. Cette option n'est disponible que lors de la mesure dans un système de coordonnées projetées et le plan 2D de ce système de coordonnées sera utilisé comme base pour les mesures.
  • PRESERVE_SHAPE — Ce type calcule l'aire ou la longueur de la géométrie à la surface de l'ellipsoïde terrestre, pour la géométrie définie dans un système de coordonnées projetées ou géographiques. Cette option préserve la forme de la géométrie dans son système de coordonnées.

La longueur de l'entité linéaire. Les longueurs sont toujours renvoyées en mètres.

La position d'index de la géométrie.

getPart renvoie un tableau d'objets ponctuels pour une partie particulière de la géométrie si un index est spécifié. Si aucun index n'est spécifié, un tableau contenant un tableau d'objets ponctuels pour chaque partie de la géométrie est renvoyé.

La dimension topologique (type de forme) de la géométrie résultante.

  • 1 — Une géométrie de dimension zéro (point ou multipoint).
  • 2 — Une géométrie unidimensionnelle (polyligne).
  • 4 — Une géométrie à deux dimensions (polygone).

Une nouvelle géométrie (point, multipoint, polyligne ou polygone) qui est l'intersection géométrique des deux géométries d'entrée.

Der boolesche Rückgabetyp True gibt an, dass die Überschneidung der beiden Geometrien dieselbe Dimension wie eine der Eingabegeometrien aufweist.

La distance le long de la ligne.

Si la distance est inférieure à zéro, alors le point de départ de la ligne sera retourné si la distance est supérieure à la longueur de la ligne, alors le point de fin de la ligne sera retourné.

La distance peut être spécifiée comme une unité de mesure fixe ou un rapport de la longueur de la ligne.

Si True, la valeur est utilisée comme un pourcentage. Si False, la valeur est utilisée comme une distance.

(Der Standardwert est faux)

Le point sur la ligne à une distance spécifiée du début de la ligne.

La nouvelle référence spatiale. Il peut s'agir d'un objet SpatialReference ou du nom du système de coordonnées.

Le nom de la géotransformation.

Der boolesche Rückgabetyp True gibt an, dass sich die Grenzen der Geometrien überschneiden.

Der boolesche Rückgabetyp True gibt an, dass diese Geometrie in der zweiten Geometrie enthalten ist.


Présentation de la méthode

Renvoie un tuple d'angle et de distance à un autre point à l'aide d'un type de mesure.

Construit la limite de la géométrie.

Construit un polygone à une distance spécifiée de la géométrie.

Construit l'intersection de la géométrie et de l'étendue spécifiée.

Indique si la géométrie de base contient la géométrie de comparaison.

contient est l'opposé de à l'intérieur.

Seules les relations vraies sont affichées dans cette illustration.

Construit la géométrie qui est le polygone de délimitation minimal de telle sorte que tous les angles extérieurs soient convexes.

Indique si les deux géométries se coupent dans une géométrie d'un type de forme inférieur.

Deux polylignes se croisent si elles ne partagent que des points en commun, dont au moins un n'est pas une extrémité. Une polyligne et un polygone se croisent s'ils partagent une polyligne ou un point (pour une ligne verticale) en commun à l'intérieur du polygone qui n'est pas équivalent à la polyligne entière.

Seules les relations vraies sont affichées dans cette illustration.

Divise cette géométrie en une partie à gauche de la polyligne de coupe et une partie à droite de celle-ci.

Lorsqu'une polyligne ou un polygone est coupé, il est divisé à l'endroit où il coupe la polyligne de coupe. Chaque pièce est classée à gauche ou à droite de la fraise. Cette classification est basée sur l'orientation de la ligne de coupe. Les parties de la polyligne cible qui n'intersectent pas la polyligne de coupe sont renvoyées comme faisant partie du droit de résultat pour cette polyligne en entrée. Si une géométrie n'est pas coupée, la géométrie de gauche sera vide ( Aucun ).

Construit la géométrie composée uniquement de la région unique de la géométrie de base mais ne faisant pas partie de l'autre géométrie. L'illustration suivante montre les résultats lorsque le polygone rouge est la géométrie source.

Indique si les géométries de base et de comparaison ne partagent aucun point commun.

Deux géométries se coupent si disjoint renvoie False .

Seules les relations vraies sont affichées dans cette illustration.

Renvoie la distance minimale entre deux géométries. La distance est dans les unités de la référence spatiale de la géométrie. Si les géométries se coupent, la distance minimale est 0.

Les deux géométries doivent avoir la même projection.

Indique si les géométries de base et de comparaison sont du même type de forme et définissent le même ensemble de points dans le plan. Il s'agit d'une comparaison 2D, seules les valeurs M et Z sont ignorées.

Seules les relations vraies sont affichées dans cette illustration.

Renvoie un objet Array d'objets Point pour une partie particulière de la géométrie si un index est spécifié. Si aucun index n'est spécifié, un objet Array contenant un Array of Point objets pour chaque partie de géométrie est renvoyé.

La méthode getPart équivaut à indexer un objet, c'est-à-dire que obj.getPart(0) équivaut à obj[0] .

Construit une géométrie qui est l'intersection géométrique des deux géométries en entrée. Différentes valeurs de dimension peuvent être utilisées pour créer différents types de formes.

L'intersection de deux géométries du même type de forme est une géométrie contenant uniquement les régions de chevauchement entre les géométries d'origine.

Pour des résultats plus rapides, testez si les deux géométries sont disjointes avant d'appeler intersect .

Indique si l'intersection des deux géométries a le même type de forme que l'une des géométries en entrée et n'est équivalente à aucune des géométries en entrée.

Seules les relations vraies sont affichées dans cette illustration.

Projette une géométrie et applique éventuellement une géotransformation.

Pour projeter, la géométrie doit avoir une référence spatiale et ne pas avoir un système de coordonnées inconnu. Le nouveau système de référence spatiale passé à la méthode définit le système de coordonnées de sortie. Si l'une des références spatiales est inconnue, les coordonnées ne seront pas modifiées. Les valeurs z et m ne sont pas modifiées par la méthode projectAs.

Construit la géométrie qui est l'union de deux géométries moins l'intersection de ces géométries.

Les deux géométries d'entrée doivent être du même type de forme.

Indique si les limites des géométries se coupent.

Deux géométries se touchent lorsque l'intersection des géométries n'est pas vide, mais que l'intersection de leurs intérieurs est vide. Par exemple, un point touche une polyligne uniquement si le point coïncide avec l'un des points d'extrémité de la polyligne.

Seules les relations vraies sont affichées dans cette illustration.

Construit la géométrie qui est l'union théorique des ensembles des géométries d'entrée.

Les deux géométries réunies doivent être du même type de forme.

Indique si la géométrie de base se trouve dans la géométrie de comparaison.

dans est l'opérateur opposé de contient .

Seules les relations vraies sont affichées dans cette illustration.

La géométrie de base est dans la géométrie de comparaison si la géométrie de base est l'intersection des géométries et que l'intersection de leurs intérieurs n'est pas vide. inside est un opérateur de Clementini, sauf dans le cas d'une géométrie de base vide.


Renvoie une représentation Esri JSON de la géométrie sous forme de chaîne.

Conseil :

La chaîne renvoyée peut être convertie en dictionnaire à l'aide de la fonction loads du module json.

Renvoie la représentation binaire bien connue (WKB) pour la géométrie OGC. Il fournit une représentation portable d'une valeur géométrique sous la forme d'un flux contigu d'octets.

Renvoie la représentation textuelle connue (WKT) pour la géométrie OGC. Il fournit une représentation portable d'une valeur géométrique sous forme de chaîne de texte.

Toutes les vraies courbes de la géométrie seront densifiées en courbes approximatives dans la chaîne WKT.

L'aire d'une entité surfacique. Il est égal à zéro pour tous les autres types d'entités.

Le véritable centroïde s'il se trouve dans ou sur l'entité, sinon, le point d'étiquette est renvoyé.

L'étendue de la géométrie.

Le premier point de coordonnées de la géométrie.

Renvoie True si la géométrie a une courbe.

Une chaîne délimitée par des espaces des paires de coordonnées du rectangle à enveloppe convexe.

Renvoie True si le nombre de pièces pour cette géométrie est supérieur à un.

Le point où se trouve l'étiquette. Le labelPoint est toujours situé dans ou sur une entité.

La dernière coordonnée de l'entité.

La longueur de l'entité linéaire. Il est égal à zéro pour les types d'entités point et multipoint.

La longueur 3D de l'entité linéaire. Il est égal à zéro pour les types d'entités point et multipoint.

Le nombre de pièces géométriques pour la fonction.

Le nombre total de points pour l'entité.

La référence spatiale de la géométrie.

Le centre de gravité d'une entité.

Le type de géométrie : polygone, polyligne, point, multipoint, multipatch, cote ou annotation.


Liste des tampons

Générez plusieurs tampons individuels ou un seul tampon unifié autour de plusieurs points.

La création de zones tampons est un concept central de l'analyse de proximité SIG qui vous permet de visualiser et de localiser des entités géographiques contenues à une distance définie d'une entité. Par exemple, considérons une zone où des éoliennes sont proposées. Il a été déterminé que chaque éolienne doit être située à au moins 2 km des locaux d'habitation en raison de la réglementation sur la pollution sonore, et une analyse de proximité est donc requise. La première étape consisterait à générer des polygones tampons de 2 km autour de toutes les éoliennes proposées. Comme les polygones tampons peuvent se chevaucher pour chaque éolienne, l'union du résultat produirait un seul résultat graphique avec une sortie visuelle plus nette. Si des locaux sont situés à moins de 2 km d'une turbine, cette turbine enfreindrait les règlements d'urbanisme.

Cliquez/appuyez sur la carte pour ajouter des points. Cliquez sur le bouton "Créer des tampons" pour dessiner des tampons autour des points (la taille du tampon est déterminée par la valeur saisie par l'utilisateur). Cochez la case si vous souhaitez que le résultat fusionne (combine) les tampons. Cliquez sur le bouton "Effacer" pour recommencer. L'enveloppe en pointillés rouges montre la zone où vous pouvez vous attendre à des résultats raisonnables pour les opérations de tampon planaire avec la référence spatiale North Central Texas State Plane.

  1. Utilisez GeometryEngine.Buffer(points, distances, union) pour créer un Polygon . Les points de paramètre sont les points de mise en mémoire tampon, les distances sont les distances de mise en mémoire tampon pour chaque point (en mètres) et union est un booléen indiquant si les résultats doivent être regroupés.
  2. Ajoutez les polygones résultants (s'ils ne sont pas réunis) ou un seul polygone (s'ils sont réunis) au GraphicsOverlay de la carte en tant que Graphic .

Les propriétés de la projection sous-jacente déterminent la précision des polygones tampons dans une zone donnée. Les tampons planaires fonctionnent bien lors de l'analyse des distances autour des entités qui sont concentrées dans une zone relativement petite dans un système de coordonnées projetées. Des tampons inexacts peuvent toujours être créés en tamponnant des points à l'intérieur de l'enveloppe de la référence spatiale avec des distances qui la déplacent à l'extérieur de l'enveloppe. D'autre part, les tampons géodésiques prennent en compte la forme incurvée de la surface de la Terre et fournissent des décalages de tampon plus précis pour les entités plus dispersées (c'est-à-dire couvrant plusieurs zones UTM, de grandes régions ou même l'ensemble du globe). Voir l'exemple "Buffer" pour un exemple de tampon géodésique.

Pour plus d'informations sur l'utilisation de l'analyse de tampon, consultez la rubrique Fonctionnement du tampon (analyse) dans le ArcGIS Pro Documentation.


Syntaxe de la boîte de dialogue

  • Identique à l'entrée : le jeu de données géographiques en sortie aura le même système de coordonnées que l'entrée. C'est la valeur par défaut.
  • Comme spécifié ci-dessous : choisissez le système de coordonnées pour les jeux de données géographiques en sortie. Spécifiez un nom de système de coordonnées ou naviguez à l'aide de la boîte de dialogue Propriétés de référence spatiale.
  • Identique à l'affichage : dans ArcMap, ArcScene ou ArcGlobe, le système de coordonnées de l'affichage actuel sera utilisé.
  • Identique à la couche <name> : toutes les couches sont répertoriées et vous pouvez en choisir une comme système de coordonnées. Comme pour l'option Identique à l'affichage, le système de coordonnées de la couche est lu et stocké. La prochaine fois que vous examinerez le paramètre Système de coordonnées en sortie, il indiquera Comme spécifié ci-dessous .