Cách tốt để chia sẻ GeoDatabase qua internet là gì?


8

Tôi đã có một tệp GeoDatabase lớn, lớn hơn 10 GB trên một máy chủ từ xa. Tôi đã tạo GeoDatabase này một thời gian trước đây và đang tìm cách truy cập cục bộ vào nó. Bây giờ tôi không thể đơn giản ghi nó vào đĩa hoặc USB và mang nó đến đây vì lý do hậu cần. Tôi cần lấy nó từ một máy tính từ xa đến máy tính cục bộ của tôi thông qua internet. Tôi chỉ có thể truy cập máy tính này thông qua Remote Desktop.

Một số điều tôi đã thử:

  1. Nén tệp GeoDatabase và sau đó tải xuống. Điều này thất bại vì một số lý do. Khi tôi giải nén GeoDatabase sau đó, nó có một số loại tham nhũng và không hoạt động.
  2. Các tính năng đã xuất sang Shapefile's. Điều này không hoạt động, nhưng nó chậm, tôi mất một số siêu dữ liệu và cuối cùng, đây không phải là cách tôi muốn hoàn thành nhiệm vụ này.
  3. Tôi đã thử sử dụng một số trang chia sẻ tệp, nhưng chúng không có đủ dung lượng (Dropbox) hoặc chúng không cho phép tải lên lớn (SkyDrive).

Tôi đã có toàn quyền kiểm soát ArcServer trên PC từ xa và tôi thực sự hy vọng rằng có một cách để lưu trữ GeoDatabase trên đó và tải xuống theo cách đó. Tôi cũng đã nghĩ đến việc xuất nó ra một XML, nhưng trước đây tôi đã gặp vấn đề với điều đó và vì GeoDatabase quá lớn và các quá trình này mất quá nhiều thời gian nên tôi muốn một giải pháp sẽ hoạt động.


2
Google drive hoặc Dropbox vẫn là một lựa chọn thay thế nếu bạn trả tiền cho một tài khoản. Với Dropbox, bạn cũng có thể nhận được hơn 10 GB dung lượng miễn phí, nhưng yêu cầu một số công việc (ví dụ: giới thiệu bạn bè).
Martin

2
Tại sao không phải là Máy chủ FTP?
Nathan W

2
Theo dõi @Martin, hãy xem ownCoud để biết bản sao hộp thư nguồn mở.
metasequoia

6
Khóa không có gì để làm với nó hoạt động tốt trong ArcCatalog. Bạn đã thử định dạng lưu trữ khác ngoài zip? Ngoài ra, lần cuối cùng nó được nén là khi nào? Điều đó có thể làm giảm kích thước tập tin, đôi khi đáng kể .
Chad Cooper

4
Tôi sẽ thử sử dụng WinRAR để lưu trữ thư mục GDB chứ không phải ZIP. RAR nén tốt hơn và có thể dễ dàng được thiết lập để tạo một tập hợp các tệp lưu trữ nhỏ hơn là một tệp lớn và có thể kiểm tra tính toàn vẹn của tệp lưu trữ sau khi được tạo. Sau đó, bạn có thể chuyển các tệp lưu trữ qua FTP và lắp lại chúng ở cuối.
Dân C

Câu trả lời:


6

FTP ( filezilla sẽ chuyển 10GB trong 2 giờ trên kết nối băng thông rộng 50mb)

Cơ sở dữ liệu địa lý tệp: nén so với nén

Nén làm cho nó CHỈ ĐỌC.

vì vậy bạn không phải giải nén nó mỗi khi bạn truy cập nó; ArcGIS và ArcReader đọc nó trực tiếp.

nhưng bạn phải giải nén nó để EDIT cơ sở dữ liệu địa lý

Nén gọn việc lưu trữ hồ sơ trong các tệp bằng cách sắp xếp lại chúng và loại bỏ không gian trống. Nếu bạn thường xuyên thêm và xóa dữ liệu trong tệp hoặc cơ sở dữ liệu địa lý cá nhân, bạn nên thu gọn cơ sở dữ liệu địa lý của mình hàng tháng

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


Cảm ơn @Mapperz Tôi đang trong quá trình nén và nén GeoDatabase.
Cody Brown

1

Câu trả lời @Mapperz là tuyệt vời và thực sự đã làm rất tốt việc thu nhỏ Cơ sở dữ liệu địa lý. Tôi vẫn không thể nén và tải xuống GDB. Ngoài ra, tôi không thể tìm thấy một FTP hoặc tương tự sẽ tải lên một cái gì đó có kích thước này. FileZilla không phải là một lựa chọn vì tôi không thể cài đặt các chương trình mới trên máy chủ.

Vì vậy, cuối cùng tôi đã chuyển GDB sang thư mục inetpub trên máy chủ, do đó làm cho nó có thể truy cập qua web. Tôi đã tạo một tệp GDB trống trên máy tính cục bộ của mình. Suy nghĩ của tôi là tạo ra một danh sách tất cả các tệp .gdbtable, .gdbtablx và các tệp khác trong GDB và sau đó tải chúng qua internet. Nhưng than ôi Chrome đã không cho phép tôi tải xuống các loại tệp này, tiếp tục phát sinh lỗi.

Vì vậy, tôi đã quay lại máy chủ và viết một đoạn script nhỏ để thay đổi phần mở rộng của tất cả các tệp trong GDB. Chỉ cần thêm .txt vào mỗi tệp. Đây là kịch bản:

import glob
import os

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

Bây giờ, có 256 tệp trong GDB. Tôi không muốn gõ từng cái một cách thủ công. Vì vậy, tôi đã tạo ra một kịch bản mới để thực hiện công việc cho tôi, làm việc như một cơ duyên. Tôi đã tải từng tệp xuống GDB cục bộ. Kịch bản đọc từng tệp trong danh sách và sau đó ghi nó, trừ phần mở rộng .txt cho GDB cục bộ.

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

Điều này làm việc cho tôi tuyệt vời. Mặc dù nó đã mất một thời gian dài để hoàn thành. Nhưng GDB đã gần 7 GB sau khi nén. Tôi hy vọng điều này sẽ giúp bất cứ ai ghé thăm câu hỏi này. Hãy cho tôi biết nếu bạn có bất kỳ câu hỏi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.