Standart veya “en çok kullanılan” bir kukla Z değeri var mı?


10

Hem 2D hem de 3D veri oluşturma ve içe aktarma, birçok kez bir koordinat kümesi için Z değerinin olmadığı, Z koordinatının değerinin aralık dışında göründüğü (-99, -9999, -inf veya benzeri) durumla karşılaştım. ) ya da sahte bir Z koordinatı oluşturmam gerekiyor .

Sorumun cevabının şu olduğunu biliyorum:

"Sadece sizin durumunuzda kesinlikle menzil dışında olan bir değer kullanın."

Ancak bu cevap bir kenara bırakılırsa, CBS topluluğunun sahte bir Z koordinatı için standart veya en sık kullanılan bir değeri olup olmadığını merak ediyorum.

Yanıtlar:


5

Güncel yanıtların hepsi iyi tavsiyelerde bulunur. Gerçek null'ları veya NaN'leri depolayamadığınız durumlarda iyi çalışan genel bir kural (bilimsel bilgi işlem topluluğundan) , alanın (geçerli olarak) tutacağı en küçük (en negatif) değeri kullanmaktır.

Örnekler:

  • 7.2 ondalık alanı -9999.99 kadar küçük bir değer alabilir.

  • Bir tamsayı raster, sayıları -32768 kadar küçük tutabilir, ancak çoğu zaman (ikiliden kaçınma ve taban 10'a yakınlık nedeniyle) yerine -9999 değeri kullanılır.

  • Bir kayan nokta sayıları -10 ^ (38) sırasıyla tutabilir. Eğer alana bir NaN koyamazsanız, ya uyacak en küçük şamandırayı bulun (bir acıdır) ya da sadece -10 ^ (38) gibi bir şey kullanın. Çiftler için -10 ^ (303) iyi çalışır, ancak -10 ^ (38) de çalışır: boş bir değerin net bir işareti olarak hizmet etmek yeterince büyük ve negatiftir.

Bu kuralın hatırlanması basit, tutarlı, uygulanması kolay, kaynak plakası biçiminde (meta verileriniz için) belgelenmesi kolaydır ve nadiren yanlışlıkla hatalara yol açar (çünkü en negatif sayı genellikle null yerine gerçek değer, istatistiksel özetleri ve bir sorunun olduğu bir bayrağı kaldırmak için yeterli olan diğer hesaplamaları bozar).


5

Verileriniz bir veritabanındaysa, ideal olarak bir NULL değeri kullanırsınız:

"eksik bilgi ve uygulanamayan bilgilerin" temsili

Ancak bu istemci uygulamaları ve kod ile ilgili sorunlara neden olabilir ve NULL DBF'lerde desteklendiğine inanmıyorum. Sanırım bu değer ne olmalı, farklı organizasyonel sözleşmeler için farklı. Seçtiğiniz sahte değer ne olursa olsun, veri kümesinin meta verilerine kaydedildiğinden emin olun.

Bir veri kümesinin hiçbir noktasının Z değeri yoksa, neden 0'ın kullanılamadığını anlamıyorum, ancak bu durumda karışıklığı önlemek için veri kümesinin Z farkındalığını tamamen kaldırmak en iyisidir.


2
+1 Çoğu ESRI ürünü ve diğer birçok yazılım, sayısal dBase alanlarındaki sıfırları sıfır olarak okuyacaktır. Bu ölümcül, bu nedenle .dbf dosyalarında (şekil dosyaları içeren) açık bir boş kodlama kullanmak genellikle önemlidir.
whuber

4

Karşılaştığım çoğu raster kural olarak kayan nokta verileri için -9999.0 kullanır ve nodata / kukla değeri olmayan bir görüntü için kod yazarken GDAL -dbl_inf kullanır. 8 bit RGB genellikle 0 0 0 veya 255 255 255 kullanır veya alfa veya maske kanalına sahiptir.

GML 3 kapsamları (şu anda çok fazla destek bulunmamakla birlikte, WCS 2 spesifikasyonu onaylandığında değişecektir) "eksik" ve "gizli" gibi metin olarak temsil edilen birkaç sahte değere sahiptir.

Benim deneyimim herhangi bir varsayılan etki alanına özgü veya satıcıya özgü olma eğilimindedir. Tüketici yerine veri üreticisi iseniz, bir sayı seçin ve ona uyun ve tüketicilerinizin bundan haberdar olduğundan emin olun.


2

NaN kullanırdım çünkü matematiksel işlemler başka NaN'ler üretecek veya istisnalar atacaktır. Bu şekilde, düzensiz bir değer kullandığınız için berbat olduğunuzu tespit edebilirsiniz.


2
NaN, hesaplamalar için (kayan nokta değerleri ile) iyi olur, ancak NaN'yi birçok veritabanında veya GIS veri biçiminde depolayamazsınız
geographika

2
+1 @geographika doğrudur. Bununla birlikte, hesaplamaları berbat edecek bir değer kullanma konusundaki nokta mükemmeldir.
whuber

tamsayılar için NaN'leriniz olabilir: numeric_limits <int> :: quiet_NaN ()
Ragi Yaser Burhum

Ayrıca, önerim NaN kullanımı için olduğu için geometri içindeki Z değeri ile ilgilidir . Bu nedenle, değerin bir veritabanında olup olmadığına bakılmaksızın, IMHO geometri ile serileştirilmelidir - bu yüzden çalışmalıdır ...
Ragi Yaser Burhum
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.