Yo no soy un experto en python, sin embargo tengo que escribir un script para hacer análisis geoestadístico con el GACreateLayer función de Arcgis.
Tengo varios datos (>2000) y quiero utilizar la lista de funciones y lista de los valores de campo para realizar cokriging.
He escrito un guión, la primera parte retorno lista de las características de mi gdb y la lista de valores en el campo que he elegido (funciona y devolver los valores de campo y de los nombres de función) y la segunda parte cokring (lo que funciona para una función y de su campo)
Sin embargo, cuando quiero usar ambas listas (inputDSet, el final de la secuencia de comandos) con el fin de crear un GA Capa no funciona.
File "C:\Program Files\ArcGIS\Desktop10.0\ArcPy\arcpy\ga.py", line 921, in GACreateGeostatisticalLayer raise e
ExecuteError: Failed to execute. Parameters are not valid.
ERROR 045001: Input dataset(s) error. Table of inputs is not complete.
Failed to execute (GACreateGeostatisticalLayer)
No sé cómo utilizar correctamente las listas? Puedo transformarlos o algo más?
Aquí, es mi código:
import sys, string, os, arcgisscripting
# Create the Geoprocessor object
gp = arcgisscripting.create()
def listFcsInGDB():
# list all Feature Classes in a geodatabase
gp.workspace = "C:\\INTERP\\PJ_class.gdb"
fcs = []
for fds in gp.ListDatasets('','feature') + ['']:
for fc in gp.ListFeatureClasses('','',fds):
#yield os.path.join(fds, fc)
fcs.append(os.path.join(fds, fc))
return fcs
fcs = listFcsInGDB()
for fc in fcs:
print fc
# List of value in fields
input_dataset = fc
Atts = 'PJ_RacPJ' #field with rainfall values
rows = gp.searchcursor(fc)
row = rows.next()
NewList = []
for fc in fcs:
for row in gp.SearchCursor(fc):
fcValue = row.getvalue(Atts)
NewList.append(fcValue)
#print NewList
arcpy.CheckOutExtension("GeoStats")
# Load required toolboxes
arcpy.ImportToolbox("C:/Documents and Settings/ArcGIS/Toolbox.tbx")
# Local variables:
Cokriging_xml = "C:\\INTERP\\COK_.xml"
CK = "CK2"
ids1 = "C:\\INTERP\\data.gdb\\dem1000"
for fc in fcs:
for fcValue in NewList:
inputDset1 = fcValue #Variables
inputDset2 = ids1 #Covariable
InputDset = "inputDset1;inputDset2"
# Create cokriging layer (code from model builder)
tempEnvironment0 = gp.autoCommit
arcpy.env.autoCommit = "1000"
tempEnvironment1 = gp.spatialGrid1
arcpy.env.spatialGrid1 = "0"
arcpy.GACreateGeostatisticalLayer_ga(Cokriging_xml,InputDset,CK) ##Function
arcpy.env.autoCommit = tempEnvironment0
arcpy.env.spatialGrid1 = tempEnvironment1
Necesito ayuda.
Si alguien tiene una idea? Sería estupendo.
Gracias