Organização de arquivos para compartilhar código python do ArcGIS

13

Qual é a melhor estrutura organizacional para compartilhar ferramentas de geoprocessamento e código python do ArcGIS? Ou ainda, o compartilhamento de código e as ferramentas de compartilhamento são perguntas separadas?

A Esri possui uma estrutura de Métodos para distribuição de ferramentas , publicada para o Arcgis 9.3 e 10.0:

exemplo de estrutura de pastas da ferramenta de distribuição

No entanto, em outros lugares, as pessoas estão dizendo coisas a Also do avoid distributing your code the way its done in Arc Scripts or Code Galleriesfavor do python nativo Distutils . A Esri não parece ter um artigo correspondente sobre ferramentas de distribuição para 10.1 ( ref ), dando algum peso ao contra-argumento.

O que diz o GIS.se?

Atualização: embora talvez seja tarde demais, mas o ponto principal desta pergunta é mais sobre as práticas recomendadas para a estrutura de arquivos e pastas antes que as ferramentas usadas para compartilhamento (arcgis online, google drive, google drive, dropbox, github, bitbucket etc.) entrem em jogar.

Atualização 2: e ninguém vai defender a abordagem dos distutils aparentemente órfãos?

Matt Wilson
fonte
Você já encontrou uma solução viável para isso?
21817 trgatmot
@traggatmot não, eu não tenho. Hoje, eu inspecionaria o site Github da Esri para o projeto python-with-toolboxes com o maior número de estrelas e / ou histórico de contribuições mais ativo (ênfase no 2º, uma vez que este Q é sobre compartilhamento e reutilização)
matt wilkie

Respostas:

10

Nas 10.1 e 10.2, as Pastas de compartilhamento de ferramentas que você ilustrou não parecem mais documentadas.

Eu suspeito que isso ocorre porque a recomendação atual seria usar pacotes de geoprocessamento em vez de pastas do ShareShare:

Pacotes de geoprocessamento são criados a partir de um ou mais resultados na janela Resultados. Todos os dados e ferramentas usados ​​para criar o resultado estão incluídos no pacote. Você pode adicionar arquivos adicionais ao pacote, como documentos de texto, apresentações de slides e arquivos ZIP compactados. Seu colega descompacta a embalagem para começar a usar imediatamente seu conteúdo.

Em termos de práticas recomendadas organizacionais, a maneira como armazeno as caixas de ferramentas e qualquer código Python que eles usam está na mesma estrutura de pastas que ainda pode ser usada para ajudar na distribuição, como a estrutura da Pasta Toolshare.

PolyGeo
fonte
... o que eu suponho que significa que a resposta para "qual é a estrutura organizacional" pode ser descoberta descompactando manualmente um arquivo de pacote de geoprocessamento e examinando suas entranhas.
Matt Wilkie
Não tentei renomear para * .zip e descompactar um * .gpk, mas meu entendimento é que você pode fazer isso. Eu suspeito que vai parecer muito com uma pasta de compartilhamento de ferramentas.
PolyGeo
5

Uso o Google Drive para compartilhar scripts e ferramentas de script Python entre colegas. Todos os scripts são armazenados em uma pasta compartilhada junto com uma caixa de ferramentas do ArcGIS, que contém todas as ferramentas (e modelos) de script vinculados. Há vários benefícios nessa abordagem: 1) Todo mundo trabalha com as mesmas versões de script, 2) Você pode definir privilégios de gravação ou somente leitura e 3) Colaboração, por exemplo, em diferentes locais de trabalho, universidades e países é muito mais fácil com o Google Dirija além de tentar definir o acesso do usuário em um servidor que você pode ou não administrar.

Aaron
fonte
1
+1, e o mesmo pode ser dito para o Dropbox
om_henners 17/10/12
Então você armazena todos os seus scripts e caixas de ferramentas no mesmo nível de pasta, correto?
RyanKDalton
@RyanDalton Para simplificar, costumo armazenar pastas em uma profundidade no mesmo nível das caixas de ferramentas. Embora o Gdrive também suporte estrutura de arquivos complicada.
Aaron
2
Qualquer pessoa que ache esse fluxo de trabalho atraente deve definitivamente dar uma olhada no software de controle de versão Git e em seu popular site de compartilhamento de repositórios, GitHub. Ele fornece todas as opções acima - um script mestre, privilégios definidos e ampla acessibilidade - com a capacidade de rastrear todas as alterações feitas no script (incluindo data e autor), experimentar novos recursos e preservar a versão de produção, gerenciar vários editar os mesmos arquivos simultaneamente etc. É mais complicado de usar, mas achei imensamente útil.
Matt Parker
Google Drive, Dropbox, Git + Github, Mercurial + Bitbucket e amigos são ótimos caminhos para o compartilhamento de arquivos e códigos, mas esse não é o objetivo desta pergunta. Busco as práticas recomendadas para a estrutura de arquivos e pastas antes que as ferramentas usadas para compartilhamento entrem em jogo.
Matt Wilkie
1

Documentação do ArcGIS Pro da Esri A extensão do geoprocessamento por meio de módulos Python mostra como estruturar um projeto que é compatível com Distutils, incluindo a construção de instaladores binários do Windows e Linux.

(Observação: este é para compartilhar scripts e ferramentas, não é um bom modelo para compartilhar scripts, mapas e dados como um único pacote.)

Layout do projeto de origem:

Árvore src

Torna-se isso no sistema do usuário final, sob C:\Path\to\ArcGIS\Desktop\python

Árvore da pasta de destino

Eles não mencionam pip, mas, ao estudar os exemplos, não vejo por que não funcionaria. Ex: para edição colaborativa e / ou um conjunto de ferramentas que muda frequentemente, instale usando pip install --editable X:\path\to\src,pip install --editable http://github.com/project/path/to/master

Matt Wilson
fonte