จะกรองคะแนน GPS ผิดอย่างไร


11

ฉันมีฐานข้อมูลของคะแนน GPS ไม่มีแทร็กใด ๆ มีเพียงคะแนนเท่านั้น ฉันต้องคำนวณค่าบางค่าสำหรับทุก ๆ 100 เมตร แต่บางครั้ง GPS ให้พิกัดที่ไม่ถูกต้องซึ่งอยู่ไกลจากจุดจีพีเอสจริงและแทนที่จะคำนวณค่าสำหรับสี่เหลี่ยมเล็ก ๆ ฉันต้องคำนวณมันสำหรับพื้นที่สี่เหลี่ยมขนาดใหญ่จริงๆ

อัลกอริทึมที่ดีที่สุดในการกรองคะแนน GPS ผิดคืออะไร

ฉันสร้างภาพหน้าจอเพื่อช่วยให้เข้าใจ:

[http://content.screencast.com/users/smirnoffs/folders/Jing/media/94624331-db6a-4171-bed9-e2183f953a1d/gps_error.png]


1
ฉันจะใช้เฟรมเคลื่อนไหวขนาดเล็กหลาย ๆ ตัว (พูด 10 คะแนนสุดท้าย) ระยะทางเฉลี่ยระหว่างจุดเป็นเกณฑ์ในการตรวจสอบค่าผิดปกติดังกล่าว
lynxlynxlynx

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

2
ฉันเห็น. ในกรณีนี้วิธีการของฉันไม่ดีนัก ฉันควรคำนวณจุดที่ใกล้เคียงที่สุดที่ใกล้ที่สุดสำหรับแต่ละจุดแล้วกำจัดค่าผิดปกติที่นั่น
lynxlynxlynx

2
วิธีที่สองที่แนะนำโดย @lynx จะทำงานได้ดีกับข้อมูลตัวอย่างโดยเฉพาะอย่างยิ่งเมื่อวิธีการตรวจหาค่าผิดปกติเป็นวิธีที่ดี ดูคำถามเกี่ยวกับค่าผิดปกติในเว็บไซต์สถิติของเราเพื่อดูตัวเลือก ยกตัวอย่างเช่นหลายความคิดสร้างสรรค์ (และถูกต้อง) วิธีมีข้อเสนอแนะที่stats.stackexchange.com/questions/213
whuber

คำตอบ:


3

เรียกใช้ Anselin Local Moran I เทียบกับคะแนนและโยนอะไรก็ได้ด้วยคะแนน z ด้านล่าง -1.96 นั่นเป็นวิธีการทางสถิติสำหรับการค้นหาค่าผิดปกติเชิงพื้นที่ คุณต้องทำให้แน่ใจว่าทุกจุดมีค่าที่เกี่ยวข้องกับตำแหน่งเชิงพื้นที่เพื่อทำเช่นนั้น

แต่ในการตรวจสอบเครื่องมือใน 10.1 หลังจากความเห็นของ whuber ฉันรู้ว่าถ้าคุณใช้ ArcGIS 10.1 เครื่องมือการวิเคราะห์การจัดกลุ่มจะพร้อมใช้งานซึ่งเป็นสิ่งที่คุณต้องการทำจริงๆ

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

จากนั้นฉันคิดว่า Delauney triangulation อาจเป็นที่มาของอัลกอริทึมตัวกรอง แต่ฉันยังไม่แน่ใจ

การอัปเดตอีกครั้ง: หลังจากขุดลงใน Partition.py สคริปต์ที่รันเครื่องมือวิเคราะห์การจัดกลุ่มฉันคิดว่ามันเป็นไปได้ที่จะใช้อัลกอริทึมที่นั่นสำหรับกลุ่มที่ไม่ได้เชื่อมต่อรวมกับส่วน NoNeighbor แม้ว่าฉันจะมีปัญหาในการขุดส่วนนั้น ต้นฉบับ


(-1) สิ่งนี้รับประกันว่าจะโยนทิ้งไปประมาณ 1 ใน 40 คะแนนไม่ว่าจะเกิดอะไรขึ้น ไม่แนะนำให้ใช้การทดสอบดังกล่าวสำหรับการตรวจหาค่าที่ผิดปกติ
whuber

1
นั่นไม่เป็นความจริงเมื่อมีการทดสอบค่าผิดปกติเชิงพื้นที่ - ถ้ามีค่าผิดปกติเชิงพื้นที่อยู่ หากค่าผิดปกติเชิงพื้นที่ไม่มีอยู่คุณจะมีปัญหานั้น แต่ถ้ามีอยู่ค่าเหล่านั้นควรมีเพียงค่าผิดปกติเหล่านั้นที่อยู่ในระดับต่ำ ทุกอย่างขึ้นอยู่กับการกระจายตัวของจุดอวกาศ
blord-castillo

1
เกือบ: ถ้าตัวผิดปกติรวมตัวกันเป็นกลุ่มคุณอาจตรวจไม่พบพวกมันโดยสิ้นเชิง (พิจารณาสถานการณ์ที่การจับคู่เป็นโมฆะหรือพิกัดไม่ดีอย่างเห็นได้ชัด (0,0) โดยอัตโนมัติ) ความคิดเห็นของคุณแสดงให้เห็นว่าการค้นหาค่าผิดปกติอาจยุ่งยากและขึ้นอยู่กับลักษณะของค่าผิดปกติ: ไม่ว่าจะมีค่าใดค่าหนึ่งหรือหลายค่า ไกลแค่ไหนที่พวกเขาสามารถ; ไม่ว่าจะสามารถจัดกลุ่ม; ฯลฯ ตามหลักการทั่วไปสถิติที่ทำให้การตั้งสมมติฐานแบบกระจาย (เช่นการใช้ Local Moran I) นี้ไม่ทำงานเช่นเดียวกับสถิติที่แข็งแกร่งและไม่อิงพารามิเตอร์
whuber

2
ฉันกำลังพิจารณาปัญหาทางทฤษฎีที่เฉพาะเจาะจงซึ่งคุณมีคะแนน GPS "ดี" และคุณมีคะแนน GPS "ไม่ดี" เท่ากันซ้อนทับกันที่มุมไกลของกล่องขอบเขต หากไม่มีความรู้ในด้านที่น่าสนใจสำหรับคะแนน "ดี" ฉันไม่คิดว่าคุณสามารถแยกสถิติออกจากเซตที่ "ดี" และชุดที่ "แย่" ได้ นี่อาจเป็นปัญหาที่ต้องมีการกำหนดพื้นที่ที่สนใจด้วยตนเอง
blord-castillo

2
ถูกต้อง: คุณได้อธิบายการกระจายตัวแบบหลายตัวแปร bimodal สิ่งที่มักจะทำในกรณีเช่นนี้คือการประมาณค่าแบบผสมหรือการประยุกต์ใช้อัลกอริธึมของคลัสเตอร์ ผลลัพธ์คือการแยกส่วนประกอบผสม / คลัสเตอร์ออก แต่ไม่ได้กำหนดองค์ประกอบใด ๆ เป็น "ผิด:" หน้าที่นั้นจะต้องตกไปถึงผู้ใช้
whuber

3

สิ่งนี้อาจช่วยในการรับรายการค่าผิดปกติ:

SELECT p1.point_id 
FROM p1 AS points, p2 AS points
WHERE p1.point_id <> p2.point_id AND
ST_Distance(p1.geom, p2.geom) > 10000

ที่นี่ point_id จะเป็นคีย์หลักในตารางคะแนนของคุณ ฟังก์ชั่นระยะทางจะหาจุดที่ใกล้ที่สุดมากกว่า 10,000 เมตร (แน่นอนคุณสามารถใส่ค่าใด ๆ ที่เหมาะสม)

หากการทำงานด้านบนเปลี่ยนเป็น statute DELETE ได้เช่น:

DELETE FROM points WHERE point_id IN (
-- SELECT as above
SELECT ....
);

1
1. คะแนนไม่ได้เรียง 2. ถ้าข้อผิดพลาดต่ำกว่า 10,000 เมตร? เช่น 150 เมตร
smirnoffs เมื่อ

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

1

ฉันจะพยายามให้คำตอบที่เป็นประโยชน์มากขึ้นเพื่อช่วยให้คุณทำงานให้สำเร็จลุล่วง (ขออภัยหากคุณกำลังมองหาการสนทนาเกี่ยวกับอัลกอริทึม)

สถานการณ์ที่ 1: คุณพูดถึง 'คะแนน GPS' ดังนั้นหากคุณสามารถเข้าถึงจุด GPS ดั้งเดิมได้งานจะง่ายขึ้นมาก คุณสามารถโยนคะแนนด้วย HDOP / VDOP สูงหรือจำนวนดาวเทียมในการดูซึ่งจะทำให้เกิดข้อผิดพลาดในขั้นต้น เครื่องมือฟรีเช่น gpsbabel มีตัวกรองดังกล่าวในตัว http://www.gpsbabel.org/htmldoc-development/Data_Filters.html

สถานการณ์ที่ 2: คุณมีชุดของคะแนน จากนั้นปัญหาจะตรวจจับค่าผิดปกติเชิงพื้นที่ มีงานวิจัยจำนวนมากในพื้นที่นี้และฉันเห็นเอกสารมากมายในเรื่องนี้จากการค้นหาเว็บ หากคุณต้องการล้างข้อมูลของคุณคุณสามารถใช้อัลกอริทึม v.outlier ของ GRASS ซึ่งควรทำงานในกรณีของคุณตามภาพหน้าจอที่คุณแชร์ http://grass.osgeo.org/gdp/html_grass63/v.outlier.html


ขอบคุณสำหรับความคิดเห็น น่าเสียดายที่ฉันมีพิกัดเท่านั้น จีพีเอสเป็นเพียงแหล่งที่มาของพิกัดและฉันไม่สามารถเข้าถึงแทร็ก GPS ดั้งเดิมได้
smirnoffs

-2

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

หากเป็นเช่นนั้นคุณควรพิจารณาที่จะทำทุกสิ่งเพื่อหาสาเหตุที่แท้จริง (เช่นจุดจีพีเอสที่ไม่ดีนั้นมาจากหลายเส้นทาง) การระบุสาเหตุที่แท้จริงนั้น (เช่นการเพิ่มเสาอากาศสำลักหรือ GPS ชนิดที่ดีกว่า คือ) แล้วทำการรวบรวมข้อมูลซ้ำ

หากข้อมูลไม่ดีไม่สำคัญให้ใช้และเพิกเฉยต่อข้อผิดพลาด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.