มีค่า Z ดัมมี่ที่ได้มาตรฐานหรือที่ใช้มากที่สุดหรือไม่?


10

การสร้างและการนำเข้าข้อมูล 2D และ 3D ฉันพบสถานการณ์หลายครั้งที่ฉันไม่มีค่า Z สำหรับชุดพิกัดซึ่งค่าของพิกัด Z ดูเหมือนจะอยู่นอกช่วง (เช่น -99, -9999, -infหรือคล้ายกัน ) หรือว่าฉันต้องสร้างZ หุ่นจำลอง

ฉันรู้ว่าคำตอบสำหรับคำถามของฉันคือ:

"เพียงแค่ใช้ค่าที่อยู่นอกขอบเขตแน่นอนในกรณีของคุณ"

แต่คำตอบนั้นฉันสงสัยว่าชุมชน GIS นั้นมีค่ามาตรฐานหรือที่ใช้บ่อยที่สุดสำหรับพิกัด Z จำลองหรือไม่

คำตอบ:


5

คำตอบปัจจุบันทั้งหมดให้คำแนะนำที่ดี กฎทั่วไป (จากชุมชนการคำนวณทางวิทยาศาสตร์) ที่ทำงานได้ดีในกรณีที่คุณไม่สามารถเก็บค่า Null จริงหรือ NaNs ใช้ค่าที่เล็กที่สุด (ลบมากที่สุด) ที่ฟิลด์จะเก็บ (ถูกต้อง)

ตัวอย่าง:

  • เขตข้อมูลทศนิยม 7.2 สามารถเก็บค่าเล็ก ๆ -9999.99

  • จำนวนแรสเตอร์จำนวนเต็มสามารถเก็บตัวเลขที่มีขนาดเล็กที่สุดเท่าที่ -32768 แต่บ่อยครั้ง (เนื่องจากความเกลียดชังต่อเลขฐานสองและความสัมพันธ์สำหรับฐาน 10) ใช้ค่า -9999 แทน

  • การลอยสามารถเก็บตัวเลขตามลำดับ -10 ^ (38) หากคุณไม่สามารถใส่ NaN ลงในฟิลด์ได้ให้หาโฟลว์เล็กที่สุดที่จะพอดี สำหรับคู่ผสม, -10 ^ (303) ทำงานได้ดี แต่ -10 ^ (38): มันใหญ่พอสมควรและติดลบเพื่อทำหน้าที่เป็นเครื่องหมายที่ชัดเจนของค่า Null

กฎนี้ง่ายต่อการจดจำสอดคล้องใช้งานง่ายและง่ายต่อการจัดทำเอกสารในรูปแบบสำเร็จรูป (สำหรับข้อมูลเมตาของคุณ) และไม่ค่อยนำไปสู่ข้อผิดพลาดที่ไม่ตั้งใจ (เพราะจำนวนลบส่วนใหญ่มักจะแตกต่างจากข้อมูลที่ มูลค่าจริงแทนที่จะเป็นโมฆะทำให้สรุปสรุปเชิงสถิติและการคำนวณอื่น ๆ เพียงพอที่จะยกระดับสถานะว่ามีปัญหา)


5

หากข้อมูลของคุณอยู่ในฐานข้อมูลคุณควรใช้ค่า NULL :

การเป็นตัวแทนของ "ข้อมูลที่ขาดหายไปและข้อมูลที่ไม่เหมาะสม"

อย่างไรก็ตามอาจทำให้เกิดปัญหากับแอปพลิเคชันไคลเอนต์และรหัสและฉันไม่เชื่อว่า NULL ได้รับการสนับสนุนใน DBF คุณค่าที่ฉันควรจะคาดเดานั้นแตกต่างกันไปตามหลักการขององค์กรที่ต่างกัน ไม่ว่าคุณจะเลือกค่าหุ่นจำลองใดก็ตามตรวจสอบให้แน่ใจว่ามีการบันทึกในชุดข้อมูลของเมตาดาต้า

หากไม่มีคะแนนสำหรับชุดข้อมูลที่มีค่า Z จากนั้นฉันไม่เห็นเหตุผลที่ไม่สามารถใช้ 0 แม้ว่าในกรณีนั้นอาจเป็นการดีที่สุดที่จะลบการรับรู้ Z ของชุดข้อมูลทั้งหมดเพื่อหลีกเลี่ยงความสับสน


2
+1 ผลิตภัณฑ์ ESRI ส่วนใหญ่รวมถึงซอฟต์แวร์อื่น ๆ ส่วนใหญ่จะอ่านค่า null ในฟิลด์ dBase ที่เป็นตัวเลขเป็นศูนย์ นั่นเป็นเรื่องที่อันตรายดังนั้นโดยทั่วไปจึงเป็นสิ่งสำคัญที่จะต้องใช้การเข้ารหัสแบบ null ที่ชัดเจนในไฟล์. dbf (ซึ่งรวมถึง shapefiles)
whuber

4

rasters ส่วนใหญ่ที่ฉันเจอใช้ -9999.0 สำหรับข้อมูลจุดลอยตัวเป็นข้อตกลงและ GDAL จะใช้ -dbl_inf เมื่อคุณเขียนโค้ดสำหรับภาพที่ไม่มีค่า nodata / dummy RGB แบบ 8 บิตโดยปกติจะใช้ 0 0 0 หรือ 255 255 255 หรือมีช่องอัลฟาหรือมาส์ก

การครอบคลุม GML 3 (ซึ่งไม่มีการสนับสนุนอย่างมากในขณะนี้ แต่จะเปลี่ยนแปลงเมื่อสเป็ค WCS 2 ได้รับการให้สัตยาบัน) มีค่าจำลองหลายตัวที่แสดงเป็นข้อความเช่น "หายไป" และ "ถูกระงับ"

ฉันรู้สึกว่าประสบการณ์เริ่มต้นของฉันมักจะเป็นแบบเฉพาะโดเมนหรือเฉพาะผู้จัดจำหน่าย หากคุณเป็นผู้ผลิตข้อมูลมากกว่าผู้บริโภคให้เลือกตัวเลขแล้วติดกับมันและทำให้แน่ใจว่าผู้บริโภคของคุณได้รับรู้ถึงมัน


2

ฉันจะใช้NaNเพราะการดำเนินการทางคณิตศาสตร์จะทำให้เกิด NaN อื่น ๆ หรือส่งข้อยกเว้น ด้วยวิธีนี้คุณสามารถตรวจพบได้อย่างชัดเจนว่าคุณกำลังสับสนเพราะคุณกำลังใช้ค่าปลอม


2
NaN น่าจะดีสำหรับการคำนวณ (ด้วยค่า floating point) แต่คุณไม่สามารถเก็บ NaN ในฐานข้อมูลหรือรูปแบบข้อมูล GIS จำนวนมาก
geographika

2
+1 @geographika ถูกต้อง อย่างไรก็ตามประเด็นเกี่ยวกับการใช้ค่าที่จะทำให้การคำนวณแย่ลงเป็นสิ่งที่ยอดเยี่ยม
whuber

สำหรับจำนวนเต็มคุณสามารถมี NaN ได้: numeric_limits <int> :: quiet_NaN ()
Ragi Yaser Burhum

นอกจากนี้คำแนะนำของฉันคือการใช้ NaN เป็นเพราะมันเกี่ยวข้องกับค่า Z ภายในเรขาคณิต ดังนั้นไม่ว่าค่านั้นจะอยู่ในฐานข้อมูลหรือไม่ก็ตาม IMHO ควรถูกทำให้เป็นอนุกรมกับรูปทรงเรขาคณิต - ดังนั้นมันจึงควรใช้งานได้ ...
Ragi Yaser Burhum
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.