Mais

Ferramenta de script ArcGIS Python Nome do campo suspenso?

Ferramenta de script ArcGIS Python Nome do campo suspenso?


Eu tenho um script python que verifica nomes de caminho de arquivo para arquivos correspondentes em um local de unidade. Todas as entradas foram originalmente codificadas e funciona bem o suficiente:

import arcpy import os shp = r "C:  Users  dotwell  Desktop  Locations.shp" fields = ["ZdriveLoc"] f = open (r "C:  Users  dotwell  Desktop  ValMapsTest.txt", "w ") cursor = arcpy.da.SearchCursor (shp, campos) para linha no cursor: Roll = str (row [0]) se não os.path.exists (Roll): f.write (Roll + os.linesep) f .perto()

Estou tentando criar uma ferramenta de script ArcGIS a partir disso, e só tive sucesso parcial. Eu posso usar

shp = arcpy.GetParameterAsText (0)

para permitir que o usuário selecione o arquivo de forma. Gostaria de ter uma lista suspensa dos campos nesse arquivo de forma para que o usuário selecione o campo que contém os nomes dos caminhos, mas não consigo fazer funcionar. Alguém pode me mostrar como gerar o drop down? Aqui está minha última tentativa. Funciona, mas requer que o usuário digite o nome do campo. Também seria bom para o usuário designar o nome e o local do arquivo de texto de saída.

import arcpy import os shapefile = arcpy.GetParameterAsText (0) field = arcpy.GetParameterAsText (1) f = open (r "C:  Usuários  dotwell  Desktop  ValMapsTemp.txt", "w") cursor = arcpy.da. SearchCursor (shapefile, campo) para a linha no cursor: Roll = str (row [0]) se não os.path.exists (Roll): f.write (Roll + os.linesep) f.close ()

Aqui estão os parâmetros em minha ferramenta de script ArcGIS:


Altere a propriedade "Obtained from" da entrada para o parâmetro shapefile.


Primeiro, adicione o arquivo como o primeiro parâmetro (você provavelmente já chegou até aqui). Em seguida, adicione um campo. Filtre o campo como na minha imagem superior para o tipo de dados para o seu campo. "Obtained From" fornece a resposta à pergunta. Você tem que definir isso para o seu ARQUIVO. Você também deve definir o TIPO como Derivado (em vez de obrigatório) no Campo.