Ajouter des champs à des entités avec ArcPy

Code Python

AddField.py


import arcpy

#Vérifier les paramètres d'entrée
arcpy.AddMessage("GetArgumentCount() = {0}".format(arcpy.GetArgumentCount()))
for i in range(arcpy.GetArgumentCount()):  
    arcpy.AddMessage("type(GetParameter({0})) = {1}".format(i, type(arcpy.GetParameter(i))))
    arcpy.AddMessage("GetParameterAsText({0}) = {1}".format(i, arcpy.GetParameterAsText(i)))

inFeatureLayer = arcpy.GetParameter(0)
outFeatureClass = arcpy.GetParameter(1)

#Copier la couche d'entités
arcpy.CopyFeatures_management(inFeatureLayer, outFeatureClass)

#Ajouter le champ
arcpy.AddField_management(outFeatureClass, "field1", "DOUBLE", field_alias = "Champ 1")
arcpy.AddField_management(outFeatureClass, "field2", "DOUBLE", field_alias = "Champ 2")

fields = ["OID@", "SHAPE@X", "SHAPE@Y", "field1", "field2"]

#Entrez une valeur dans le champ
with arcpy.da.UpdateCursor(outFeatureClass, fields) as cursor:
    arcpy.AddMessage("Champ avant saisie")
    for row in cursor:
        arcpy.AddMessage(row)
        row[3] = row[1]
        row[4] = row[2]
        cursor.updateRow(row)
del cursor

#Vérifiez l'état après l'entrée
with arcpy.da.SearchCursor(outFeatureClass, fields) as cursor:
    arcpy.AddMessage("Champ après saisie")
    for row in cursor:
        arcpy.AddMessage(row)
del cursor

Résultat d'exécution

Lorsqu'il est exécuté en tant qu'entrée avec une couche d'entités contenant deux polygones.

2020-01-12-20-40-12.png

GetArgumentCount() = 2
type(GetParameter(0)) = <class 'arcpy._mp.Layer'>
GetParameterAsText(0) =Polygone de test
type(GetParameter(1)) = <class 'geoprocessing value object'>
GetParameterAsText(1) = D:\GIS\ArcGIS_Project\GeometryTest\GeometryTest.gdb\Polygone de test_AddField
Champ avant saisie
[1, 134.32332180386206, 30.338120870687362, None, None]
[2, 144.42135929631993, 39.08930527833865, None, None]
Champ après saisie
[1, 134.32332180386206, 30.338120870687362, 134.32332180386206, 30.338120870687362]
[2, 144.42135929631993, 39.08930527833865, 144.42135929631993, 39.08930527833865]

2020-01-12-20-40-50.png

référence

Recommended Posts

Ajouter des champs à des entités avec ArcPy
Comment ajouter un package avec PyCharm
Convertir des chaînes de caractères en quantités de caractéristiques avec RoBERTa
Ajouter des images à des photos iOS avec Pythonista
Ajouter du bruit gaussien aux images avec python2.7
Ajouter des lignes à un tableau vide avec numpy
Ajouter / supprimer un noyau pour utiliser jupyter avec venv
Ajouter une convolution à MNIST
Ajoutez la fonction d'exportation CSV à l'écran de gestion avec django-import-export
Comment ajouter de l'aide à HDA (avec bonus de script Python)
Convertir 202003 en 2020-03 avec les pandas
Ajoutez des informations au bas de la figure avec Matplotlib
Ajoutez simplement le pilote à la touche de forme avec mélangeur
Accès aux champs du dictionnaire
Ajoutez un faux effet d'inclinaison aux vidéos avec OpenCV + Python
La façon habituelle d'ajouter un noyau avec Jupyter Notebook
[Mémo à ajouter] Page à voir lors du développement avec GAE / P
Essayez d'extraire les caractéristiques des données de capteur avec CNN
Ajouter / supprimer un noyau à JupyterLab
Ajouter un dictionnaire à MeCab
Connectez-vous à Wikipedia avec Python
Publiez sur Slack avec Python 3
Connectez-vous à Postgresql avec GO
Ajouter un numéro de page au PDF
Introduction à RDB avec sqlalchemy Ⅰ
Rendre avec la syntaxe facile
Comment mettre à jour avec SQLAlchemy?
Pour exécuter gym_torcs avec ubutnu16
Comment lancer avec Theano
Comment modifier avec SQLAlchemy?
Basculer python vers 2.7 avec des alternatives
Écrire en csv avec Python
Comment séparer les chaînes avec ','
Obtenez des fonctionnalités d'image avec OpenCV
Comment faire RDP sur Fedora31
2 façons de gérer SessionNotCreatedException
Comment supprimer avec SQLAlchemy?
Ajouter un dictionnaire utilisateur à MeCab
[Hugo] Résumé de la façon d'ajouter des pages au site créé avec Learn
Ajouter des utilisateurs disposant d'un accès SSH à votre instance Linux Amazon EC2