Xuất các tính năng với tệp đính kèm để sử dụng ngoài ArcGIS?


13

ArcGIS 10 có tính năng mới để thêm tệp đính kèm vào các tính năng riêng lẻ cho các lớp tính năng được lưu trữ trong cơ sở dữ liệu địa lý. Một cách sử dụng này sẽ là thêm nhiều hình ảnh vào một vị trí cụ thể, vòi chữa cháy dường như là một ví dụ phổ biến (điều quan trọng cần biết là bạn có phải là một con chó trên internet cần một hố dừng không?

Trong cơ sở dữ liệu, cấu trúc của lớp tính năng kích hoạt tệp đính kèm được chia thành ba phần:

  • chính lớp tính năng,
  • một bảng chứa các tệp đính kèm và siêu dữ liệu liên quan (tên tệp, kích thước, v.v.) và
  • một lớp mối quan hệ xác định mối quan hệ 1-nhiều giữa hai người.

3 mục bao gồm một lớp tính năng kích hoạt tệp đính kèm

Câu hỏi của tôi là: làm cách nào để xuất dữ liệu này - lớp tính năng, tệp đính kèm, siêu dữ liệu tệp đính kèm - để tiêu thụ bên ngoài Arcgis? *

Xuất FC dễ dàng, FeatureClassToFeatureClass hoạt động tương tự như trên FC không hỗ trợ đính kèm. Xuất bảng đính kèm? Không nhiều lắm. TableToTable to output.dbf chỉ trích xuất siêu dữ liệu tệp đính kèm, để xuất ra lỗi.csv với loại trường không được hỗ trợ và bảng thông tin đầu ra không thành công với lỗi trường chung.

Đây không phải là tất cả đáng ngạc nhiên vì các loại tệp không hỗ trợ kiểu dữ liệu blob nhị phân. Tôi đã mong đợi / hy vọng tìm thấy một công cụ chuyển đổi các nhị phân đính kèm thành định dạng gốc của chúng, vd

bảng để sơ đồ hệ thống

Vì vậy, làm thế nào về nó? Tôi cần làm gì để lấy dữ liệu ra?

* trớ trêu thay, dự án của tôi về thời điểm sinh ra Q này là xuất khẩu để sử dụng trong Arcgis, chứ không phải Arcgis Desktop ...

Câu trả lời:


4

http://support.esri.com/em/ledgeledridease/Techarticles/detail/41763

Dành cho ArcGIS 10.1+

from arcpy import da
import os

inTable = arcpy.GetParameterAsText(0)
fileLocation = arcpy.GetParameterAsText(1)

with da.SearchCursor(inTable,['DATA','ATT_NAME']) as cursor:
   for row in cursor:
      binaryRep = row[0]
      fileName = row[1]
      # save to disk
      open(fileLocation + os.sep + fileName, 'wb').write(binaryRep.tobytes())
      del row
      del binaryRep
      del fileName

cảm ơn bạn Điều này hoạt động, nhưng thực sự chỉ là một điểm khởi đầu cho một giải pháp thực sự. Các tệp đã xuất chỉ bị đổ trong một thư mục chung, làm mất mối quan hệ với bản ghi nguồn. Trong các bình luận có một phương thức được mô tả để sử dụng Record_ID làm tên tệp; quá phức tạp đối với tôi và không chứa nhiều tệp đính kèm, nhưng nó tốt hơn mặc định.
matt wilkie

Một số tài nguyên khác để trợ giúp với cách tiếp cận python: * forum.arcgis.com/threads/, * gist.github.com/oevans/6992139 * github.com/bgeomicking/arcgis-rest-toolbox
matt wilkie

3

Xuất GDB sang XML (bằng cách nhấp chuột phải vào GDB> Xuất ra XML) hoàn toàn có thể xuất các tính năng + tệp đính kèm. Hơn nữa, nếu bạn đang tìm kiếm một cách tiếp cận tự động hơn, ArcGIS 10.1 có một hộp công cụ mới để xuất XML. Bạn có thể nhập XML vào các GDB mới hoặc truy cập trực tiếp tất cả dữ liệu của nó bằng cách phân tích cú pháp cho các ứng dụng khác.


1
Cách tiếp cận này nghe có vẻ hấp dẫn, tuy nhiên tôi không có bất kỳ công cụ nào (tôi không nghĩ) có thể sử dụng .xml. Vì vậy, tôi sẽ chỉ giao dịch một định dạng mờ cho một định dạng khác. Tuy nhiên, ít nhất với .xml có tiềm năng truy cập và sử dụng lại. Tôi sẽ khám phá con đường này khi chúng tôi triển khai 10.1.
matt wilkie

2

Tôi chưa thử các phương pháp tiếp theo, vì vậy tôi chỉ nghĩ về nó:

Nếu bạn thuận tiện với ArcGIS .NET API, bạn có thể sử dụng C # để xuất các đốm màu thành tệp. Hãy xem đoạn trích này .

Cũng có thể bạn có thể thử xuất bảng đính kèm sang GDB cá nhân và sau đó thử xuất các đốm màu ở đó. Giống như cách bạn có thể xuất sang bảng SDE và sử dụng DBMS (sql?) Để thực hiện nó.


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.