Existe alguma maneira de adicionar trechos de código arbitrários a um modelo do ArcGIS?
Eu imagino algo semelhante ao "show code block", o construtor de expressões na etiquetagem avançada ou na calculadora de campo .
Por exemplo, meu projeto do momento pode se beneficiar muito ao buscar o nome de usuário da pessoa que está executando a ferramenta. Eu sei que em python isso é simples import os; os.environ.get('USERNAME')
. Acho que eu poderia escrever esse trecho get_username.py
, adicioná-lo a uma caixa de ferramentas no Arccatalog, depois adicionar essa ferramenta ao modelo e usá-lo como parâmetro de modelo por requisito para a minha ferramenta atual. Isso dá muito trabalho para uma coisa tão pequena, e da próxima vez eu poderia querer outra coisa, como substituição de variável embutida ou uma variável composta .
Eu acho que uma ferramenta de trecho de código ou similar pode atender a todas essas necessidades de uma maneira genérica e amplamente útil.
fonte
Respostas:
Nova resposta para um post antigo, apenas para esclarecer como criar um modelo reutilizável para fazer isso.
Abra o modelo, Inserir-> Ferramentas Somente Modelo-> Calcular Valor.
Na expressão, digite:
getuser()
No bloco de código, digite:
(Consulte " Obtendo o nome do usuário em formato específico " para obter a fonte do snippet de código do nome de usuário em @ChadCooper)
Para Tipo de dados, escolha
String
.Renomeie o círculo de saída para
username
. O modelo de resultado final será semelhante a:E você pode simplesmente arrastar esse modelo para qualquer modelo futuro e referenciar a variável chamada% username% em quaisquer modelos ou scripts futuros. Apenas certifique-se de que este modelo seja executado antes de tentar acessar a variável% username%. Você pode fazer isso usando uma pré - condição .
fonte
Na verdade, você pode fazer isso com a ferramenta Calcular valor (gerenciamento de dados) .
Não é particularmente elegante (todo o código-fonte da ferramenta é impresso no log toda vez que é executado), e o editor (na verdade, apenas uma caixa de texto) é péssimo.
Eu sugiro escrever módulos dos quais você pode importar e chamar funções e, em seguida, você só precisará escrever trechos muito curtos na caixa de diálogo. Caso contrário, não é apenas muito limpo.
Calcular valor está disponível em todos os níveis de licença do Arcgis v10. Com a v9.x, ele está disponível para o Arcview apenas se as extensões do Spatial ou 3D Analyst estiverem instaladas ( ref ).
fonte
%USERNAME%
em uma conexão de banco de dados .sde). Concordou que o editor não é digno desse nome, funciona bem como um destino de colagem.Talvez eu esteja entendendo mal a pergunta, mas parece que a funcionalidade da ferramenta de script python, no ArcToolBox, é o que você está procurando:
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Integrating_scripts_within_a_model/002w0000006n000000/
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//001500000006000000.htm
De fato, você também pode usar / combinar várias outras linguagens de script (R neste exemplo):
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//002w0000007w000000
fonte