Processing math: 100%

9 votos

¿Cuál es una buena manera de compartir una base de datos geográficos a través de Internet?

Tengo una gran base de datos geográficos de archivos de más de 10 GB en un servidor remoto. Creé esta GeoBase de datos hace algún tiempo y estoy buscando tener acceso local a ella. Ahora no puedo simplemente grabarla en un disco o USB y traerla aquí por razones logísticas. Necesito llevarla desde un ordenador remoto a mi ordenador local a través de Internet. Sólo puedo acceder a este ordenador a través de Escritorio Remoto.

Algunas cosas ya las he probado:

  1. Comprimiendo el archivo GeoDatabase y luego descargándolo. Esto falló por alguna razón. Cuando descomprimo la base de datos geográficos después, tiene algún tipo de corrupción y no funciona.
  2. Exportó las características a Shapefile's. Esto funciona, pero es lento, pierdo algunos metadatos y al final, no es así como quiero realizar esta tarea.
  3. Intenté usar algunos sitios de intercambio de archivos, pero no tienen suficiente espacio (Dropbox) o no permiten subir archivos grandes (SkyDrive).

Tengo el control total del ArcServer en el PC remoto y esperaba que hubiera una forma de alojar la GeoDatabase en él y descargarla de esa manera. También estaba pensando en exportarla a un XML, pero he tenido problemas con eso en el pasado y como la base de datos geográficos es tan grande y estos procesos llevan tanto tiempo, quiero una solución que funcione.

6voto

Erik Öjebo Puntos 6937

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

Bases de datos geográficos de archivos: comprimir vs. compactar

La compresión hace que sólo se lea.

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

pero debes descomprimir a EDITAR la base de datos geográficos

La compactación ordena el almacenamiento de los registros en los archivos reordenándolos y eliminando el espacio libre. Si se añaden y eliminan datos con frecuencia en un archivo o en una base de datos geográficos personal, se debe compactar la base de datos geográficos mensualmente.

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

1voto

CesarB Puntos 908

La respuesta de @Mapperz fue genial y realmente hizo un buen trabajo al reducir la Geodatabase. Todavía no pude comprimir y descargar la BGF. Tampoco pude encontrar un FTP o similar que subiera 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 del 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 desafortunadamente Chrome no me dejó descargar estos tipos de archivos, seguía arrojando errores.

Así que volví al servidor y escribí un poco de script para cambiar las extensiones de todos los archivos de la BGF. Simplemente añadiendo .txt a cada archivo. Aquí está el script:

import glob
import os

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

Ahora, había 256 archivos dentro de la BGF. No quería escribir cada uno manualmente. Así que creé un nuevo script para hacer el trabajo por mí, funcionó como un encanto. Descargué cada uno de los archivos en el GDB local. El script lee cada archivo de la lista y luego lo escribe, sin la extensión .txt en el BGF 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 funcionó muy bien para mí. Aunque me llevó mucho tiempo terminarlo. Pero el BGF fue casi 7 GB después de la compactación. Espero que esto ayude a cualquiera que visite esta pregunta. Háganme saber si tienen alguna pregunta.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X