Boş değerli çokgen şekil dosyası mı?


10

Herkes içinde boş girişleri olan bir örnek şekil dosyasını nerede bulabileceğimi biliyor mu (tercihen bir çokgen şekil dosyası)?

Boş girdilerle nasıl oluşturulacağından emin değilim.

Yanıtlar:


10

SHP dosyalarını okuyan birçok yazılımın geometri için boş değerleri desteklemediğine dikkat edin. ArcView'ın eski sürümlerinde bile sorunlar vardı.

Burada bir örnek oluşturdum: http://www.routeware.dk/temp/shp_null_sample.zip 3 kaydı var, ikincisi geometri yok.


Hangi ArcView sürümleri? AV 2.x ve 3.x'in yeni bir şekil dosyası (Avenue'de 'FTab' nesnesi) oluşturduklarında boş geometriler oluşturacağını hatırlıyorum, bu nedenle boş geometriler yaygındı ve tamamen desteklendi.
whuber

null geomlar desteklenir, geometri için geçerli bir değerdir (bilinmiyor). Sorun, ilk önce null olup olmadığını kontrol etmeden geometriyi kullanan birçok yazılımdır, daha sonra çökmeler gibi kötü şeyler olur. Bu yüzden bir gp aracı Veri Yönetimi \ CheckGeometry vardır, yazılım bir fc ile ilgili sorun yaşıyorsa, bu genellikle kontrol edilecek ilk şeydir.
gotchula

1
Yeni bir şekil dosyasına yeni kayıtlar eklemek basit bir konudur (AV 3.x'in Görünüm GUI'sinde ctrl-A bunu yapacaktır). Otomatik olarak boş şekiller alırlar. Bir projeksiyon alanının dışında kalan sert çıkıntılı şekiller gibi geçersiz işlemler sonucunda da boş şekiller üretildi. AV 3.x genellikle onlarla hiçbir problem yaşamıyordu. Bence AV 8 ve sonrasında problemler ortaya çıkmış olabilir: aslında ESRI'nin yeni yazılımı kendi özelliklerine uymadı.
whuber

1
@UffeKousgaard, bu yazının şu anda ölü olan bir bağlantıyla ilgili olan kısmına üstü çizili uyguladım. İtibarın kaybedilmesine yol açabilecek gönderinin kaldırılmasını önlemek için lütfen bu yanıtı ayrıntılı olarak açıklayabilir misiniz?
Fezter

1
Dosya geri döndü.
Uffe Kousgaard

10

Geometri / şekil sütunu için null olduğunu varsayıyorum, çünkü shapefiles geometri dışında herhangi bir alan türü için null desteklemiyor ve tarih alanları için (duyuyorum).

Aşağıdaki kod, boş bir poli geometriye sahip 1 kayıt / özellik içeren 1 şekil dosyası oluşturur.


  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()



Ben koşmak ve bunu beklediğim şey olsun

UYARI 000442: c: \ temp \ outfc.shp biçiminde 0 konumunda null geometri


1

ESRI yazılımı üzerinde çalışıyorsanız, en azından ArcGIS 9.3 için konuşabiliyorum, o zaman şekil dosyaları null'ları desteklemiyor. Birkaç hafta önce bu problemle karşılaştım ve bir gün araştırdık. Bu bağlantıyı özellikle aydınlatıcı buldum http://forums.esri.com/Thread.asp?c=93&f=993&t=125464. ESRI şekil dosyaları içindeki null'ları desteklemenin tek yolu, coğrafi veritabanlarını kullanmaktır (daha sonra şekil dosyaları özellik sınıfı haline gelir. Bir coğrafi veri tabanı dosyası kullandım). Null'ları desteklemek için, bir coğrafi veri tabanı oluşturmaya ve bir şekil dosyası oluşturmanın ve daha sonra coğrafi veri tabanına aktarmanın aksine (bu null'ları desteklemeyecektir) dosya coğrafi veritabanında (şekil dosyaları olarak da bilinir) özellik sınıflarını (şekil dosyaları olarak da bilinir) oluşturdum. . Doğru hatırlıyorsam, alan özelliklerinde de boş değerlerin desteklenmesini istediğinizi açıkça belirtmeniz gerekir. İşte Python ile ArcGIS 9.3 dosya coğrafi veritabanında bir özellik sınıfı nasıl oluşturulur?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.