7 votos

Python-arcpy : Cómo hacer la lista de características de gdb y el valor de la lista de campo y el uso de ellos en gaLayer función?

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

2voto

Arda Xi Puntos 1099

Si estoy en la interpretación de la ayuda en esto correctamente, in_datasets para GACreateGeostatisticalLayer debe ser una lista separada por comas de espacio separados conjunto de datos de entrada/campo de entrada de pares.

[inputDset1 field1, inputDset2 field2]

También tiene en comillas - InputDset = "inputDset1;inputDset2" - , lo que podría ser un problema, ya que son variables; cuando en las citas que se podría llegar a interpretarse como cadenas.

Yo no he probado nada de esto, sólo algunas ideas de cosas para ver.

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