Suite

Outil de script arcpy : création d'une entité ponctuelle à partir des coordonnées XY saisies par l'utilisateur

Outil de script arcpy : création d'une entité ponctuelle à partir des coordonnées XY saisies par l'utilisateur


Cette partie de mon outil me pose des problèmes. Je souhaite créer une nouvelle classe d'entités basée sur l'espace de travail en entrée de l'utilisateur, puis générer une nouvelle entité ponctuelle dans cette classe d'entités en fonction des coordonnées XY d'entrée de l'utilisateur.

Pour l'instant c'est ce que j'ai. Mon outil de script appelle le DEM d'entrée (paramètre 0) (ceci est nécessaire pour un processus ultérieur). une coordonnée XY (Paramètre 1) et un espace de travail de sortie (Paramètre2)

Les coordonnées XY d'entrée sont divisées, délimitées par des espaces. À partir de là, Xcoord et Ycoord peuvent être lus en tant que type virgule flottante et utilisés pour générer l'entité ponctuelle.

Le problème est le suivant : à chaque fois, quelles que soient les entrées de coordonnées utilisées, le point est placé à

-81.511127 37.576795 Degrés décimaux

Même si j'entre 0,0 pour les coordonnées…

Y a-t-il quelque chose qui m'échappe ? Comment puis-je créer une nouvelle entité ponctuelle à l'aide des entrées Xcoord et Ycoord de l'outil ?

Voici mon code :

importer arcpy depuis arcpy importer env depuis arcpy.sa importer * depuis arcpy.da importer * env.overwriteOutput = True arcpy.CheckOutExtension("3D") arcpy.CheckOutExtension("Spatial") DEM = arcpy.GetParameterAsText(0) CoordsIn = arcpy .GetParameterAsText(1) Workspace = arcpy.GetParameterAsText(2) CoordSplit = CoordsIn.split(" "); Xcoord = (CoordSplit[0]) Ycoord = (CoordSplit[1]) arcpy.AddMessage(Xcoord) arcpy.AddMessage(Ycoord) PointName = "pourpoint.shp" GeomType = "POINT" Template = "" Has_m = "DISABLED" Has_z = "DISABLED" SpRef = arcpy.Describe(DEM).spatialReference arcpy.CreateFeatureclass_management(Workspace, PointName, GeomType, Template, Has_m, Has_z, SpRef) fc = Workspace + "/" + PointName curseur = arcpy.da.InsertCursor(fc , ["[email protected]"]) xy = (float(Xcoord), float(Ycoord)) cursor.insertRow([xy]) del curseur arcpy.AddMessage(xy)

Ton code a fonctionné pour moi ! Peut-être que votre DEM utilise un système de coordonnées différent de celui des coordonnées d'entrée ? Que se passe-t-il si vous pointez vers un DEM qui utilise quelque chose comme WGS84 (et donc votre fichier de sortie obtient WGS84, et les coordonnées d'entrée font référence à WGS84. Oh, et utilisez des gestionnaires d'erreurs pour vous faciliter la vie ! com/en/help/main/10.1%20/index.html#//002z0000000q000000


Voir la vidéo: Ajouter des coordonnées XY. arcgis. اضافة احداثيات الى جدول البيانات