Qual é uma boa maneira de compartilhar um GeoDatabase pela Internet?

8

Eu tenho um Arquivo GeoDatabase grande, com mais de 10 GB, em um servidor remoto. Eu criei este GeoDatabase há algum tempo e estou procurando ter acesso local a ele. Agora não posso simplesmente gravá-lo em um disco ou USB e trazê-lo aqui por razões logísticas. Preciso obtê-lo de um computador remoto para o meu computador local via Internet. Só consigo acessar este computador via Área de Trabalho Remota.

Algumas coisas que eu já tentei:

  1. Fechando o arquivo GeoDatabase e baixando-o. Isso falhou por algum motivo. Quando descompacte o GeoDatabase posteriormente, ele apresenta algum tipo de corrupção e não funciona.
  2. Recursos exportados para o Shapefile. Isso funciona, mas é lento, perco alguns metadados e, no final, não é assim que quero realizar essa tarefa.
  3. Tentei usar alguns sites de compartilhamento de arquivos, mas eles não têm espaço suficiente (Dropbox) ou não permitem uploads grandes (SkyDrive).

Eu tenho controle total sobre o ArcServer no PC remoto e estava realmente esperando que houvesse uma maneira de hospedar o GeoDatabase e fazer o download dessa maneira. Eu também estava pensando em exportá-lo para um XML, mas tive problemas com isso no passado e porque o GeoDatabase é tão grande e esses processos demoram tanto tempo que quero uma solução que funcione.

Cody Brown
fonte
2
O Google drive ou o Dropbox ainda são uma alternativa se você pagar por uma conta. Com o Dropbox, é possível obter mais de 10 GB de espaço gratuito também, mas requer algum trabalho (por exemplo, encaminhando amigos).
1627 Martin Martin
2
Por que não um servidor FTP?
Nathan W
2
Após o @Martin, confira o ownCoud para obter um clone do dropbox de código aberto.
Metasequoia 16/05
6
Bloqueios não têm nada a ver com isso funcionando bem no ArcCatalog. Você já tentou outro formato de arquivo que não seja o zip? Além disso, quando foi a última vez que compactou ? Isso poderia reduzir o tamanho do arquivo, às vezes dramaticamente .
Chad Cooper
4
Eu tentaria usar o WinRAR para arquivar a pasta GDB do arquivo em vez do ZIP. O RAR compacta melhor e pode ser facilmente configurado para criar um conjunto de arquivos menores, em vez de um grande, e pode testar a integridade do arquivo depois que ele foi criado. Depois, você pode transferir os arquivos compactados via FTP e montá-los novamente.
Dan C

Respostas:

6

FTP (o filezilla transfere 10 GB em 2 horas em uma conexão de banda larga de 50 mb)

Banco de dados geográficos de arquivos: compactação vs. compactação

A compactação torna SOMENTE LER.

para que você não precise descompactá-lo sempre que acessá-lo; O ArcGIS e o ArcReader leem diretamente.

mas você deve descompactá- lo para editar o geodatabase

A compactação arruma o armazenamento de registros em arquivos, reordenando-os e eliminando espaço livre. Se você adiciona e exclui dados com freqüência em um arquivo ou em um banco de dados geográfico pessoal, compacta seu banco de dados mensalmente

http://resources.arcgis.com/en/help/main/10.1/index.html#//018s0000000r000000

Mapperz
fonte
Obrigado @Mapperz Estou no processo de compactação e compactação do GeoDatabase.
Cody Brown
1

A resposta do @Mapperz foi ótima e realmente fez um bom trabalho ao reduzir o Geodatabase. Ainda não consegui compactar e baixar o GDB. Também não consegui encontrar um FTP ou similar que carregasse algo desse tamanho. O FileZilla não era uma opção, pois eu não conseguia instalar novos programas no servidor.

Então, no final, mudei o GDB para a pasta inetpub no servidor, tornando-o acessível via web. Eu criei um arquivo GDB em branco no meu PC local. Meu pensamento era criar uma lista de todos os arquivos .gdbtable, .gdbtablx e outros dentro do GDB e depois baixá-los pela Internet. Mas, infelizmente, o Chrome não me deixou baixar esses tipos de arquivo, continuava gerando erros.

Então, voltei ao servidor e escrevi um pequeno script para alterar as extensões de todos os arquivos no GDB. Simplesmente adicionando .txt a cada arquivo. Aqui está o script:

import glob
import os

x = glob.glob("C:/Inetpub/wwwroot/_Data/GeoDatabase.gdb/*")
for a in x:
    os.rename(a, a + ".txt")

Agora, existem 256 arquivos no GDB. Eu não queria digitar cada um manualmente. Então, eu criei um novo script para fazer o trabalho para mim, funcionou como um encanto. Eu baixei cada um dos arquivos para o GDB local. O script lê cada arquivo da lista e depois o grava, menos a extensão .txt no GDB local.

import glob
import urllib2

DownloadList = ['C:/Inetpub/wwwroot/1A_Data/OntarioGeodatabase_x.gdb\\a00000001.gdbindexes', ....] #List of local server side paths to the files

a1 = 1                    # for counting
a2 = len(DownloadList)    # for counting

for y in DownloadList:
    fileN = y.replace("C:/Inetpub/wwwroot/1A_Data/OntarioGeodatabase_x.gdb\\","")      # Isolate filename
    webPath = y.replace("C:/Inetpub/wwwroot", "http://www.MyWebsite.com") + ".txt"     # Create Webpath to file
    localPath = y.replace("C:/Inetpub/wwwroot/1A_Data/OntarioGeodatabase_x.gdb\\", "C:/Test.gdb")     # Create local path for saving file

    file = urllib2.urlopen(webPath)  # Open File on the web
    output = open(localPath,'wb')    # Open local path for writing
    output.write(file.read())        # Write to local
    output.close()                   # Close local

    print str(a1) + "/" + str(a2) + " : " + webPath     # Just for tracking purposes on my side
    a1 = a1 + 1

Isso funcionou muito bem para mim. Embora demorou muito tempo para terminar. Mas o GDB foi de quase 7 GB após a compactação. Espero que isso ajude quem visita esta pergunta. Deixe-me saber se você tiver alguma dúvida.

Cody Brown
fonte