¿Cuál es una buena manera de compartir una GeoDatabase a través de Internet?

8

Tengo una GeoDatabase de archivos grande, mayor de 10 GB en un servidor remoto. Creé esta GeoDatabase hace algún tiempo y estoy buscando tener acceso local a ella. Ahora no puedo simplemente grabarlo en un disco o USB y traerlo aquí por razones logísticas. Necesito llevarlo de una computadora remota a mi computadora local a través de Internet. Solo puedo acceder a esta computadora a través de Escritorio remoto.

Algunas cosas que ya he probado:

  1. Comprimir el archivo GeoDatabase y luego descargarlo. Esto falló por alguna razón. Cuando descomprimo la GeoDatabase después, tiene algún tipo de corrupción y no funciona.
  2. Características exportadas a Shapefile's. Esto funciona, pero es lento, pierdo algunos metadatos y, al final, no es así como quiero lograr esta tarea.
  3. Intenté usar algunos sitios para compartir archivos, pero o no tienen suficiente espacio (Dropbox) o no permiten cargas grandes (SkyDrive).

Tengo control total sobre ArcServer en la PC remota y realmente esperaba que hubiera una manera de alojar la GeoDatabase en ella y descargarla de esa manera. También estaba pensando en exportarlo a un XML, pero he tenido problemas con eso en el pasado y porque la GeoDatabase es tan grande y estos procesos llevan tanto tiempo que quiero una solución que funcione.

Cody Brown
fuente
2
Google Drive o Dropbox sigue siendo una alternativa si paga una cuenta. Con Dropbox también es posible obtener más de 10 GB de espacio gratis, pero requiere algo de trabajo (por ejemplo, referir amigos).
Martin
2
¿Por qué no un servidor FTP?
Nathan W
2
Después de @ Martin, consulte ownCoud para un clon de código abierto de Dropbox.
metasequoia
66
Las cerraduras no tienen nada que ver con que funcione bien en ArcCatalog. ¿Has probado otro formato de archivo que no sea zip? Además, ¿cuándo fue la última vez que se compactó ? Eso podría reducir el tamaño del archivo, a veces dramáticamente .
Chad Cooper
44
Intentaría usar WinRAR para archivar la carpeta GDB del archivo en lugar de ZIP. RAR se comprime mejor y puede configurarse fácilmente para crear un conjunto de archivos de almacenamiento más pequeños en lugar de uno grande, y puede probar la integridad del archivo una vez que se ha creado. Luego puede transferir los archivos a través de FTP y volver a ensamblarlos en su extremo.
Dan C

Respuestas:

6

FTP ( filezilla transferirá 10GB en 2 horas en una conexión de banda ancha de 50mb)

Geodatabases de archivos: compresión frente a compactación

La compresión hace que LEA SOLO.

para que no tenga que descomprimirlo cada vez que acceda a él; ArcGIS y ArcReader lo leen directamente.

pero debes descomprimirlo para EDITAR la geodatabase

La compactación ordena el almacenamiento de registros en archivos al reordenarlos y eliminar el espacio libre. Si agrega y elimina datos con frecuencia en un archivo o geodatabase personal, debe compactar su geodatabase mensualmente

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

Mapperz
fuente
Gracias @Mapperz Estoy en el proceso de comprimir y compactar la GeoDatabase.
Cody Brown
1

La respuesta de @Mapperz fue excelente y realmente hizo un buen trabajo al reducir la Geodatabase. Todavía no podía comprimir y descargar el GDB. Además, no pude encontrar un FTP o similar que cargara algo de este tamaño. FileZilla no era una opción ya que no podía instalar nuevos programas en el servidor.

Así que al final moví el GDB a la carpeta inetpub en el servidor, haciéndolo accesible a través de la web. Creé un archivo GDB en blanco en mi PC local. Mi idea era crear una lista de todos los archivos .gdbtable, .gdbtablx y otros archivos dentro del GDB y luego descargarlos a través de Internet. Pero, por desgracia, Chrome no me permitió descargar estos tipos de archivos, seguía arrojando errores.

Así que volví al servidor y escribí un pequeño script para cambiar las extensiones de todos los archivos dentro del GDB. Simplemente agregue .txt a cada archivo. Aquí está el guión:

import glob
import os

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

Ahora, hay 256 archivos dentro del GDB. No quería escribir cada uno manualmente. Así que creé un nuevo guión para hacer el trabajo por mí, funcionó a las mil maravillas. Descargué cada uno de los archivos al GDB local. El script lee cada archivo de la lista y luego lo escribe, menos la extensión .txt en el 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

Esto me funcionó muy bien. Aunque tardó mucho tiempo en terminar. Pero el GDB tenía casi 7 GB después de la compactación. Espero que esto ayude a cualquiera que visite esta pregunta. Hazme saber si tienes alguna pregunta.

Cody Brown
fuente