Mais

Abra ArcGIS Geodatabase como objeto de arquivo python

Abra ArcGIS Geodatabase como objeto de arquivo python


Estou desenvolvendo um script para POST um .GDB para um serviço de geoprocessamento. Parte do meu fluxo de trabalho envolve abri-lo durante a criação da solicitação POST:

arquivos = {'arquivo': (abrir (C:  Temp.gdb, 'r'))} r = solicitações.post (uploadsUrl, arquivos = arquivos, dados = dados)

Consigo executar a primeira linha com um geodatabase pessoal (.mdb), mas recebo um erro ao abrir um GDB:

IOError: [Errno 13] Permissão negada: 'C:  Temp.gdb'

É possível usar o comando open () em um arquivo geodatabase? Eu poderia ler todas as classes de recursos e POSTá-las individualmente para a API REST, mas mover o GDB seria muito mais fácil.


Um geodatabase pessoal é um único arquivo do Access. Um arquivo geodatabase é uma coleção de uma pontuação ou mais arquivos em um diretório (com mais arquivos adicionados para cada classe de recurso ou índice). Um arquivo de E / Sabrirmétodo em um diretório não processará todos os arquivos abaixo dele.

Em vez disso, você tem várias opções:

  1. Você pode compactar todo o conteúdo da árvore de diretório .gdb e transmitir o fluxo de bytes e, em seguida, descompactar na extremidade receptora para fazer upload de um arquivo de banco de dados geográfico. Desnecessário dizer que isso pode ficar grande e você pode precisar passar uma lista de FCs nos quais operar.
  2. Você pode ter certeza de que o cliente e o servidor compartilham um sistema de arquivos comum e passar o nome para a classe de recurso anexada ao caminho no qual o processo de recebimento o encontrará (por exemplo, commonhost volume transfer myfgdb.gdb myfeatureclass)
  3. Você pode transmitir os dados em um formato diferente de FGDB para processamento (por exemplo, JSON, texto delimitado por ASCII conhecido, KML ...)

Observe que os sistemas de arquivos remotos têm desempenho significativamente pior para o acesso FGDB. Uma vez que cada serviço de geoprocessamento tem um diretório "rascunho" e um geodatabase de arquivo atribuído a ele, seria sensato copiar os dados de origem localmente antes de começar a usar a classe de recurso. A pasta de rascunho também pode ser usada para receber um conjunto de dados compactado (a parte mais complicada aqui é escrever o serviço para funcionar localmente no host de publicação e no servidor)


Assista o vídeo: Creating a File Geodatabase in ArcMap