1 votos

Unión espacial con el asistente de Python /ArcGIS Addin

Tengo un shapefile de puntos que contiene todos mis datos recogidos en el campo, lat/long y todos los datos de campo recogidos durante la temporada. Lo único que no se importó fue el nombre de los lagos en los que cayeron estos puntos. Tengo un conjunto de datos de polígono que tiene el nombre del lago. Lo que quiero lograr sin crear otro conjunto de datos es tener el nombre del lago poblado para cada punto que cae dentro del lago. Algunos de mis lagos no tienen nombre, por lo que algunos tendrán registros en blanco, si eso supone una diferencia. Estaba tratando de lograr esto con el código de python que encontré alrededor de la red tratando de lograr la misma cosa. Intenté importarlo en el asistente del addin de ArcGIS que permite crear botones con código python que los ejecuta. Este es el código que tengo hasta ahora y que no funciona. Hago clic en el botón y no pasa nada.

  import arcpy
  import pythonaddins

  class Transfer(object):
"""Implementation for AIS_Transfer_addin.tool (Button)"""
def __init__(self):
    self.enabled = True
    self.checked = False
def onClick(self):
    pythonaddins.MessageBox ('Attributes have been Transfered!', 'Message', 0)
    arcpy.env.overwriteOutput = True
    arcpy.MakeFeatureLayer_management('E:\Violations\AIS_Registry\MISIN_Source_Data_All_20181120.shp','lyr_Source')
    arcpy.MakeFeatureLayer_management('E:\Violations\AIS_Registry\Michigan_Lakes_All_v3.shp','lyr_lakes')

    rows = arcpy.SearchCursor(lyr_lakes)
    for row in rows:
        arcpy.SelectLayerByAttribute_management('lyr_lakes', 'NEW_SELECTION', '\'FID\' = ' + str(row.getValue('FID')))
        arcpy.SelectLayerByLocation_management('lyr_source', INTERSECT, 'lyr_lakes', '', 'NEW_SELECTION')
        arcpy.CalculateField_management('lyr_source', 'Lake_Name', "'[0]'".format(str(row.getValue('Label'))), 'PYTHON_9.3', '')
    print 'Finished processing' + str(row.getValue('Label'))

2voto

Hameno Puntos 129

Las trayectorias de la capa de características de la marca no son correctas, actualmente los "\ ~" están siendo interpretados como un carácter de escape. Pruebe una de estas opciones en su lugar:

arcpy.MakeFeatureLayer_management('E:/Violations/AIS_Registry/MISIN_Source_Data_All_20181120.shp','lyr_Source')
arcpy.MakeFeatureLayer_management('E:/Violations/AIS_Registry/Michigan_Lakes_All_v3.shp','lyr_lakes')

o

arcpy.MakeFeatureLayer_management('E:\\Violations\\AIS_Registry\\MISIN_Source_Data_All_20181120.shp','lyr_Source')
arcpy.MakeFeatureLayer_management('E:\\Violations\\AIS_Registry\\Michigan_Lakes_All_v3.shp','lyr_lakes')

o

arcpy.MakeFeatureLayer_management(r'E:\Violations\AIS_Registry\MISIN_Source_Data_All_20181120.shp','lyr_Source')
arcpy.MakeFeatureLayer_management(r'E:\Violations\AIS_Registry\Michigan_Lakes_All_v3.shp','lyr_lakes')

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X