Shapefile poligon dengan nilai nol?

10

Apakah ada yang tahu di mana saya dapat menemukan sampel shapefile yang memiliki entri nol di dalamnya (lebih disukai polifon shapefile)?

Saya tidak yakin bagaimana cara membuatnya dengan entri nol.

Jeff Storey
sumber

Jawaban:

10

Berhati-hatilah karena banyak perangkat lunak yang membaca file SHP tidak mendukung nilai-nol untuk geometri. Bahkan versi ArcView yang lebih lama pun bermasalah.

Saya telah membuat sampel di sini: http://www.routeware.dk/temp/shp_null_sample.zip Ini memiliki 3 catatan, yang ke-2 tidak memiliki geometri.

Uffe Kousgaard
sumber
Versi ArcView yang mana? Saya ingat bahwa AV 2.x dan 3.x akan membuat geometri nol setiap kali mereka membuat shapefile baru (objek 'FTab' di Avenue), jadi geometri nol adalah umum dan sepenuhnya didukung.
whuber
null geoms didukung, mereka nilai yang valid (tidak diketahui) untuk geometri. Masalahnya adalah banyak perangkat lunak menggunakan geometri tanpa terlebih dahulu memeriksa apakah itu nol, kemudian hal-hal buruk terjadi seperti crash. Itu sebabnya ada alat gp Manajemen Data \ CheckGeometry, jika perangkat lunak bermasalah dengan fc, ini biasanya hal pertama yang perlu diperiksa.
Gotchula
1
Ini masalah sederhana untuk menambahkan catatan baru ke shapefile baru (ctrl-A di View GUI AV 3.x akan melakukannya). Mereka secara otomatis memiliki bentuk nol. Bentuk kosong juga diproduksi sebagai hasil dari operasi yang tidak valid, seperti bentuk proyeksi keras yang berada di luar domain proyeksi. AV 3.x umumnya tidak punya masalah dengan mereka. Saya pikir masalah mungkin muncul dalam AV 8 dan yang lebih baru: pada dasarnya, perangkat lunak ESRI yang lebih baru tidak sesuai dengan spesifikasi mereka sendiri.
whuber
1
@UffeKousgaard, saya telah menerapkan coretan ke bagian posting ini yang berkaitan dengan tautan yang sekarang mati. Tolong uraikan jawaban ini untuk mencegah penghapusan pos, yang dapat menyebabkan hilangnya reputasi.
Fezter
1
File kembali.
Uffe Kousgaard
10

Saya berasumsi maksud Anda nol untuk kolom geometri / bentuk, karena shapefile tidak mendukung nol untuk semua jenis bidang kecuali geometri dan (saya dengar) untuk bidang tanggal.

Kode di bawah ini membuat 1 shapefile dengan 1 catatan / fitur yang memiliki geometri poli nol.


  import arcpy
  import os
  outfc = r'c:\temp\outfc.shp'
  arcpy.env.workspace = os.path.dirname(outfc)
  arcpy.CreateFeatureclass_management(arcpy.env.workspace,os.path.basename(outfc), 'polygon')
  cur = arcpy.InsertCursor(outfc)
  row = cur.newRow()
  cur.insertRow(row)
  del(row)
  del(cur)
  r = arcpy.CheckGeometry_management(outfc,'in_memory\\outtable')
  print r.getMessages()



Saya menjalankannya dan mendapatkan ini yang saya harapkan

PERINGATAN 000442: geometri nol pada 0 dalam c: \ temp \ outfc.shp

Gotchula
sumber
1

Jika Anda bekerja pada perangkat lunak ESRI, setidaknya saya dapat berbicara untuk ArcGIS 9.3, maka shapefile tidak mendukung nulls. Saya mengalami masalah ini beberapa minggu yang lalu dan menghabiskan satu hari menyelidiki. Saya menemukan tautan ini terutama menerangi http://forums.esri.com/Thread.asp?c=93&f=993&t=125464. Tampaknya satu-satunya cara untuk mendukung nulls dalam ESRI shapefile adalah dengan menggunakan geodatabases (kemudian shapefile menjadi featureclasses. Saya menggunakan file geodatabase). Untuk mendukung nulls, saya akhirnya membuat geodatabase dan membuat kacamata feature (atau dikenal sebagai shapefile) di dalam file geodatabase (ini akan mendukung nulls) sebagai lawan membuat shapefile dan kemudian mengimpornya ke dalam geodatabase (ini tidak akan mendukung nulls) . Jika saya ingat dengan benar, Anda juga harus secara eksplisit menyatakan dalam properti bidang yang Anda inginkan nulls didukung. Berikut ini tautan yang mungkin membantu. Cara membuat kelas fitur dalam file geodatabase di ArcGIS 9.3 dengan Python?

9monkey
sumber