Mengekspor fitur dengan lampiran untuk digunakan di luar ArcGIS?


14

ArcGIS 10 menampilkan kemampuan baru untuk menambahkan lampiran ke fitur individual ke kelas fitur yang disimpan dalam geodatabase. Salah satu penggunaan ini adalah untuk menambahkan beberapa gambar ke lokasi tertentu, hidran tampaknya menjadi contoh yang populer (penting untuk mengetahui apakah Anda seekor anjing di internet yang membutuhkan pit stop, saya kira).

Dalam database, struktur kelas fitur yang diaktifkan lampiran adalah trifold:

  • kelas fitur itu sendiri,
  • sebuah tabel yang menyimpan lampiran dan metadata terkait (nama file, ukuran, dll), dan
  • kelas hubungan yang mendefinisikan hubungan 1-ke-banyak di antara keduanya.

3 item yang terdiri dari kelas fitur yang diaktifkan dengan lampiran

Pertanyaan saya adalah: bagaimana cara mengekspor data ini - kelas fitur, lampiran, lampiran metadata - untuk konsumsi di luar Arcgis? *

Mengekspor FC itu mudah, FeatureClassToFeatureClass berfungsi sama seperti pada FC yang tidak dilengkapi lampiran. Mengekspor tabel lampiran? Tidak terlalu banyak. TableToTable untuk output.dbf mengekstraksi metadata file terlampir saja, untuk output.csv kesalahan dengan jenis bidang tidak didukung, dan untuk tabel info keluaran gagal dengan kesalahan bidang umum.

Ini tidak terlalu mengejutkan karena tipe file tersebut tidak mendukung tipe data biner gumpalan. Saya mengharapkan / berharap menemukan alat yang akan mengubah binari terlampir ke format asli mereka, misalnya

tabel untuk mengajukan diagram sistem

Jadi, bagaimana dengan itu? Apa yang harus saya lakukan untuk mengeluarkan data?

* ironisnya proyek saya saat ini yang menelurkan Q ini adalah untuk ekspor untuk digunakan dalam Arcgis, hanya saja Arcgis Desktop ...

Jawaban:


4

http://support.esri.com/em/knowledgebase/techarticles/detail/41763

Untuk 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

terima kasih ian! Ini bekerja, tetapi sebenarnya hanya titik awal untuk solusi nyata. File yang diekspor hanya dibuang di folder umum, kehilangan hubungan dengan catatan sumber. Dalam komentar ada metode yang dijelaskan untuk menggunakan Record_ID sebagai nama file; terlalu melingkar bagi saya, dan tidak mengakomodasi banyak lampiran, tetapi lebih baik daripada default.
matt wilkie

Beberapa lebih banyak sumber daya untuk membantu dengan pendekatan python: * forums.arcgis.com/threads/... * gist.github.com/oevans/6992139 * github.com/bgeomapping/arcgis-rest-toolbox
matt wilkie

3

Mengekspor GDB ke XML (dengan mengklik kanan pada GDB> Ekspor ke XML) dapat dengan sempurna mengekspor fitur + lampiran. Selain itu, jika Anda mencari pendekatan yang lebih otomatis, ArcGIS 10.1 menampilkan kotak alat baru untuk ekspor XML. Anda dapat mengimpor XML ke GDB baru atau secara langsung mengakses semua datanya dengan menguraikannya untuk aplikasi lain.


1
Pendekatan ini kedengarannya menarik, tetapi saya tidak memiliki alat (saya tidak berpikir) yang akan dapat menggunakan .xml baik. Jadi saya hanya akan memperdagangkan satu format buram untuk yang lain. Namun setidaknya dengan .xml ada potensi untuk akses dan penggunaan kembali. Saya akan menjelajahi jalur ini ketika kami mendapatkan 10.1 dikerahkan.
matt wilkie

2

Saya belum mencoba metode selanjutnya, jadi saya hanya memikirkannya saja:

Jika Anda merasa nyaman dengan ArcGIS .NET API Anda dapat menggunakan C # untuk mengekspor gumpalan ke file. Lihatlah potongan ini .

Mungkin juga Anda dapat mencoba untuk mengekspor tabel lampiran ke Personal GDB dan kemudian mencoba untuk mengekspor gumpalan di sana. Cara yang sama Anda dapat mengekspor ke tabel SDE dan menggunakan Anda DBMS (sql?) Untuk melakukannya.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.