คำถามติดแท็ก point-in-polygon

การดำเนินการ GIS ทั่วไป ใช้เพื่อกำหนดว่าจุดอยู่ภายในขอบเขตของรูปหลายเหลี่ยมหรือไม่

2
กำลังมองหาทางออกที่เร็วที่สุดสำหรับการวิเคราะห์จุดในรูปหลายเหลี่ยม 200 ล้านจุด [ปิด]
ฉันมี CSV ที่มีการสังเกต 200 ล้านครั้งด้วยรูปแบบต่อไปนี้: id,x1,y1,x2,y2,day,color 1,"-105.4652334","39.2586939","-105.4321296","39.2236632","Monday","Black" 2,"-105.3224523","39.1323299","-105.4439944","39.3352235","Tuesday","Green" 3,"-104.4233452","39.0234355","-105.4643990","39.1223435","Wednesday","Blue" สำหรับแต่ละชุดพิกัด (x1 / y1 และ x2 / y2) ฉันต้องการมอบหมาย US Census Tract หรือ Census Block ที่มันอยู่ภายใน (ฉันดาวน์โหลด Cfile tract TIGER ในรูปไฟล์ที่นี่: ftp://ftp2.census.gov/ geo / tiger / TIGER2011 / TRACT / tl_2011_08_tract.zip ) ดังนั้นฉันต้องดำเนินการจุดในรูปหลายเหลี่ยมสองครั้งสำหรับการสังเกตแต่ละครั้ง สิ่งสำคัญคือการแข่งขันจะต้องแม่นยำมาก วิธีที่เร็วที่สุดในการทำเช่นนี้รวมถึงเวลาในการเรียนรู้ซอฟต์แวร์คืออะไร? ฉันเข้าถึงคอมพิวเตอร์ที่มีหน่วยความจำ 48GB - ในกรณีที่อาจมีข้อ จำกัด ที่เกี่ยวข้อง …

4
รูปหลายเหลี่ยมเชิงพื้นที่ซ้อนทับพร้อมกริดและการตรวจสอบว่าพิกัดตำแหน่งขององค์ประกอบกริดนั้นอยู่ที่ใดโดยใช้ R [ปิด]
วิธีหนึ่งสามารถใช้ Rเพื่อ แยก Shapefileใน 200 เมตรสี่เหลี่ยม / รูปหลายเหลี่ยมย่อย พล็อตกริดนี้ (รวมถึงหมายเลข ID สำหรับแต่ละช่อง) เหนือแผนที่ดั้งเดิมด้านล่างและ ประเมินว่าพิกัดทางภูมิศาสตร์เฉพาะของรูปสี่เหลี่ยมจัตุรัสตั้งอยู่ที่ไหน ฉันเป็นผู้เริ่มต้นใน GIS และนี่อาจเป็นคำถามพื้นฐาน แต่ฉันไม่พบบทเรียนเกี่ยวกับวิธีการทำเช่นนี้ใน R สิ่งที่ฉันทำไปแล้วคือการโหลดรูปร่างไฟล์ของ NYC และวางแผนพิกัดทางภูมิศาสตร์ที่เป็นแบบอย่าง ฉันกำลังมองหาตัวอย่าง (รหัส R) วิธีการนี้ด้วยข้อมูลด้านล่าง # Load packages library(maptools) # Download shapefile for NYC # OLD URL (no longer working) # shpurl <- "http://www.nyc.gov/html/dcp/download/bytes/nybb_13a.zip" shpurl <- "https://www1.nyc.gov/assets/planning/download/zip/data-maps/open-data/nybb_13a.zip" tmp <- …

2
ฉันจะหาจุดในรูปหลายเหลี่ยมใน PostGIS ได้อย่างไร
ฉันจะหาจุดที่รับประกันได้ว่าอยู่ในรูปหลายเหลี่ยมที่กำหนดใน PostGIS ได้อย่างไร ฉันตระหนักถึงST_Centroidฟังก์ชั่น อย่างไรก็ตามเซนทรอยด์อาจไม่อยู่ในรูปหลายเหลี่ยมเสมอไปดูด้านล่าง: นอกจากนี้ฉันต้องการหลีกเลี่ยงการใช้จุดที่อยู่ในขอบเขตของรูปหลายเหลี่ยม แต่ต้องการให้มีจุดที่อยู่ภายในขอบเขต

3
เข้าร่วมข้อมูลจุดเชิงพื้นที่กับรูปหลายเหลี่ยมใน R
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เนื่องจากสามารถตอบได้ในการแลกเปลี่ยน Stack ของระบบข้อมูลทางภูมิศาสตร์ อพยพ 4 ปีที่แล้ว ฉันพยายามทำการรวมเชิงพื้นที่ระหว่างข้อมูลจุดและข้อมูลรูปหลายเหลี่ยม ฉันมีข้อมูลที่ระบุพิกัดเชิงพื้นที่ของเหตุการณ์ในไฟล์ csv ของฉัน A และมีไฟล์อีกไฟล์หนึ่งคือ shapefile B ซึ่งมีขอบเขตของพื้นที่เป็นรูปหลายเหลี่ยม head(A) month longitude latitude lsoa_code crime_type 1 2014-09 -1.550626 53.59740 E01007359 Anti-social behaviour 2 2014-09 -1.550626 53.59740 E01007359 Public order 3 2014-09 -1.865236 53.93678 E01010646 Anti-social behaviour head(B@data) code name altname 0 …

7
วิธีที่เร็วที่สุดในการรวมจุด CSV เข้ากับรูปหลายเหลี่ยม Shapefile
ฉันมีไฟล์ CSV 1 พันล้านจุดและไฟล์รูปร่างที่มีประมาณ 5,000 รูปหลายเหลี่ยม อะไรจะเป็นวิธีที่เร็วที่สุดในการเข้าร่วมจุดและรูปหลายเหลี่ยมเชิงพื้นที่? สำหรับแต่ละจุดฉันจำเป็นต้องได้รับ polygon id ที่มี (รูปหลายเหลี่ยมไม่ทับซ้อนกัน) โดยปกติฉันจะโหลดชุดข้อมูลทั้งสองลงใน PostGIS มีวิธีที่เร็วกว่าในการทำให้งานเสร็จหรือไม่? ฉันกำลังมองหาโซลูชันโอเพนซอร์ซ

2
นับคะแนนในรูปหลายเหลี่ยมด้วย Postgis
ฉันมีปัญหาง่ายๆ: ฉันต้องการนับจำนวนคะแนนภายในชุดรูปหลายเหลี่ยม ฉันมี SQL อยู่แล้ว แต่เพียงคืนค่า gid ของรูปหลายเหลี่ยมที่มีคะแนนอยู่จริง ตารางของฉัน: ชั้นรูปหลายเหลี่ยมที่มี 19,000 แถวและชั้นจุดที่มี 450 แถว SQL ต่อไปนี้ select grid.gid, count(*) AS totale FROM grid, kioskdhd3 WHERE st_contains(grid.geom,kioskdhd3.geom) GROUP BY grid.gid; ส่งคืนเฉพาะรูปหลายเหลี่ยม 320 รูปที่มีคะแนน แต่ฉันต้องการให้รูปหลายเหลี่ยมคืนทั้งหมดแม้จะคิดว่าจำนวนคะแนนเป็น 0 แน่นอนว่ามันเกี่ยวข้องกับ WHERE-clause ของฉันด้วย ฉันต้องใส่ st_contain ของฉันที่ไหน? ขอบคุณ Carsten

3
ตรวจสอบว่าจุดหนึ่งอยู่ในหลายรูปหลายเหลี่ยมด้วย Python หรือไม่
ฉันได้ลองหลายตัวอย่างของรหัสโดยใช้ไลบรารีเช่น shapefile, fiona และ ogr เพื่อพยายามตรวจสอบว่ามีจุด (x, y) อยู่ในขอบเขตของรูปหลายเหลี่ยมที่สร้างด้วย ArcMap (และในรูปแบบ shapefile) อย่างไรก็ตามไม่มีตัวอย่างใดที่ทำงานได้ดีกับมัลติโพลิกอนถึงแม้ว่ามันจะใช้ได้ดีกับรูปร่างหลายเหลี่ยมแบบปกติ ตัวอย่างบางส่วนที่ฉันพยายามอยู่ด้านล่าง: # First example using shapefile and shapely: from shapely.geometry import Polygon, Point, MultiPolygon import shapefile polygon = shapefile.Reader('shapefile.shp') polygon = polygon.shapes() shpfilePoints = [] for shape in polygon: shpfilePoints = shape.points polygon = shpfilePoints poly = …

2
แปลงกลุ่มของคะแนนเป็นรูปหลายเหลี่ยมโดยใช้ QGIS?
ฉันมีเลเยอร์จุดอินพุตที่ถูกจัดกลุ่มเป็นกลุ่มดังนั้นฉันต้องการให้แต่ละกลุ่มของคะแนนถูกแปลงเป็นรูปหลายเหลี่ยม คำถามนี้ ( วิธีแปลงชุดคะแนนเป็นรูปหลายเหลี่ยมตามเขตข้อมูลเฉพาะใน QGIS ) ดูเหมือนจะเข้าใกล้สิ่งที่ฉันต้องการโดยไม่ได้รับคำตอบ โดยพื้นฐานแล้วฉันต้องการอัลกอริทึมใน QGIS ที่จะแปลงแต่ละกลุ่มของคะแนน (ตามฟิลด์คุณลักษณะ) ตามที่เห็นด้านล่างเป็นรูปหลายเหลี่ยม? ฉันลองใช้งาน 'Point2One' แล้วมันทำให้ฉันเห็นผลลัพธ์ที่ผิดด้านล่าง ... สำเนาข้อมูลของฉันพบที่นี่

2
รูปหลายเหลี่ยมเชิงพื้นที่% over% รูปหลายเหลี่ยมทำงานอย่างไรเมื่อรวมค่าใน r
ฉันกำลังทำงานในโครงการระบาดวิทยาด้านสิ่งแวดล้อมที่ฉันมีจุดรับสัมผัส (~ 2,000 HHO - IHOs) IHO เหล่านี้ฉีดพ่นในบริเวณใกล้เคียง แต่หยดน้ำและกลิ่นอุจจาระสามารถเดินทางได้หลายไมล์ ดังนั้นการเปิดเผยจุดเหล่านี้จะได้รับบัฟเฟอร์ 3mi และฉันต้องการทราบจำนวนการเปิดรับ IHO (ชนิดต่าง ๆ - ผลรวมของจำนวนมูล, จำนวนหมู, อะไรก็ตามที่ง่ายที่สุดเพียงจำนวนบัฟเฟอร์การสัมผัสซ้อนทับ) ต่อบล็อกสำรวจ NC (~ 200,000) บล็อกการสำรวจสำมะโนประชากร (สีฟ้า) คืออะไร (1) ในเมืองที่มีประชากรมากที่สุด 5 อันดับแรกและ (2) มณฑลที่ไม่ติดกับเขตที่มี IHO อยู่ในนั้น (หมายเหตุ: ทำด้วยฟังก์ชัน gRelate และรหัส DE-9IM - เนียนมาก!) ดูภาพด้านล่างสำหรับภาพ ขั้นตอนสุดท้ายคือการรวมการแสดงแสงที่บัฟเฟอร์เข้ากับบล็อกการสำรวจสำมะโน ที่นี่ฉันอยู่นิ่งงัน ฉันมีช่วงเวลาที่ดีกับฟังก์ชั่น% over% ในแพคเกจ sp จนถึงตอนนี้ แต่เข้าใจจากบทความสั้น …

1
ผู้ประกอบการเชิงพื้นที่ใน R?
ฉันจะเลือกเชิงพื้นที่หรือตัวกรองใน R ได้อย่างไร? ฉันสามารถทำได้ใน PostGIS โดยใช้ (เช่น): SELECT * FROM mypoint, mypoly WHERE ST_Within(mypoint.geom, mypoly.geom); และมันก็คล้าย ๆ กับเค้กในซอฟต์แวร์ GIS อื่น ๆ ส่วนใหญ่ ดังนั้นฉันคาดหวังบางสิ่งใน R ให้มีลักษณะดังนี้: mypoint[within(mypoint, mypoly),] แต่ฉันไม่พบโอกาสในการขายใด ๆ ฉันกำลังมองหาบางสิ่งที่ใช้คำศัพท์เชิงปริภูมิทั่วไปที่ใช้ใน PostGIS / GEOS / JTS / Shapely (ภายในมีจุดตัดซ้อนทับซ้อนสัมผัส ฯลฯ ; DWithin จะเป็นโบนัส) ฟังก์ชันหรือไลบรารีนี้มีอยู่สำหรับ R หรือไม่ ถ้าไม่มีสิ่งที่คล้ายกันหรือไม่ หมายเหตุ: ใน R ฉันใช้spคลาสสำหรับวัตถุ …

1
กำลังอัปเดตฟิลด์เพื่อนับจำนวนจุดเป็นรูปหลายเหลี่ยมโดยใช้ STIntersects
ฉันมีเลเยอร์แต้ม (dbo.ptLayer) ประมาณ 1 ล้านคะแนน ประเภทเรขาคณิตเชิงพื้นที่ (dbo.ptLayer.geom) ยังไม่มีดัชนีเชิงพื้นที่ แต่จะสร้างหนึ่งครั้งเมื่อการรวบรวมข้อมูลเสร็จสมบูรณ์ ฉันมีเลเยอร์หลายเหลี่ยม (dbo.polygonLayer) ประมาณ 500 รูปหลายเหลี่ยม ประเภทเรขาคณิตเชิงพื้นที่ (dbo.polygonLayer.geom) ทั้งสองมีเขตข้อมูลที่เรียกว่า ID ฉันจะเติมฟิลด์จำนวนเต็มว่างในเลเยอร์รูปหลายเหลี่ยมด้วยการนับจำนวนคะแนนรวมภายในแต่ละรูปหลายเหลี่ยมได้อย่างไร แม้ว่าฉันจะสามารถเข้าถึงผลิตภัณฑ์ซอฟต์แวร์อื่น ๆ ได้ แต่ฉันสนใจที่จะเรียนรู้สิ่งที่สามารถทำได้อย่างหมดจดภายใน SQL และ SQL Server ฉันเชื่อว่าฉันควรใช้ประโยชน์จากSTIntersectsแต่ต้องการทราบว่าวิธีใดที่ดีที่สุดในการอัปเดตเพื่อเติมข้อมูลในฟิลด์นี้

3
จุดในอัลกอริทึมรูปหลายเหลี่ยมสำหรับหลายเหลี่ยม
ฉันมีแผนที่ Google พร้อมโพลิกอนมากมาย นี่คือปัญหาที่ฉันสนใจ: เนื่องจาก lat, lng point เป็นวิธีที่ดีที่สุดในการกำหนดรูปหลายเหลี่ยมทั้งหมดที่จุดนี้อยู่ วิธีที่ชัดเจนคือการเรียกใช้อัลกอริทึม "จุดในรูปหลายเหลี่ยม" ซ้ำ ๆ กันสำหรับรูปหลายเหลี่ยมแต่ละอัน แต่ฉันสงสัยว่าถ้ามีอัลกอริทึมที่มีประสิทธิภาพในการตอบคำถามเหล่านี้โดยเฉพาะอย่างยิ่งถ้าคุณมีรูปหลายเหลี่ยมหลายพัน

2
อัปเดตแถวฐานข้อมูลด้วยคะแนนที่อยู่ในรูปหลายเหลี่ยม
ฉันมี PostGIS / Postgresql DB ที่มีสองตารางอยู่ในนั้น หนึ่งที่มีรูปทรงเรขาคณิตจุดและอื่น ๆ ที่แสดงถึงขอบเขตของประเทศเป็นรูปหลายเหลี่ยม ฉันต้องการเพิ่มชื่อประเทศที่แต่ละจุดตัดกับแต่ละแถวในตารางพอยต์ของฉัน อาจเป็นแบบสอบถามแบบใช้ปรับปรุงที่มีขนาดใหญ่ ฉันคิดว่านี่เป็นไปได้ที่จะใช้ SQL แบบตรง แต่ไม่รู้ว่าจะเริ่มต้นตรงไหน คำแนะนำใด ๆ เกี่ยวกับเรื่องนี้จะได้รับการชื่นชมอย่างมาก ...

1
ประสิทธิภาพที่เพิ่มขึ้นจากดัชนี GIST สำหรับจุดในรูปหลายเหลี่ยมแบบสอบถาม
ฉันมีสองตาราง: สถานที่ตั้ง (id, region_id, the_geom) และภูมิภาค (id, the_geom) สำหรับจุดที่ตั้งแต่ละแห่งฉันต้องการระบุภูมิภาคที่อยู่ใน: UPDATE locations SET region_id = (SELECT id FROM regions WHERE ST_Within(locations.the_geom,regions.the_geom) ); มันสมเหตุสมผลหรือไม่ที่จะสร้างดัชนี GIST ที่จุดตำแหน่ง? ฉันจะสร้างดัชนีในรูปหลายเหลี่ยมภูมิภาค แต่ฉันไม่แน่ใจเกี่ยวกับประเด็นนี้ มันจะเพิ่มความเร็วของแบบสอบถามหรือไม่

1
เพิ่มประสิทธิภาพจุดที่มีขนาดใหญ่มากในการค้นหารูปหลายเหลี่ยม
ฉันมีชุดข้อมูลที่อยู่แห่งชาติ (37 ล้านชุด) และชุดข้อมูลรูปหลายเหลี่ยมของชุดข้อมูลน้ำท่วม (2 ล้าน) ประเภท MultiPolygonZ ประเภทของรูปหลายเหลี่ยมมีความซับซ้อนมาก ST_NPoints สูงสุดอยู่ที่ประมาณ 200,000 ฉันกำลังพยายามระบุโดยใช้ PostGIS (2.18) ซึ่งจุดที่อยู่ในรูปหลายเหลี่ยมน้ำท่วมและเขียนสิ่งเหล่านี้ไปยังตารางใหม่ที่มีที่อยู่ ID และรายละเอียดความเสี่ยงน้ำท่วม ฉันได้ลองจากมุมมองที่อยู่ (ST_ ภายใน) แต่จากนั้นสลับมุมมองนี้เริ่มต้นจากมุมมองของพื้นที่น้ำท่วม (ST_Contains) เหตุผลว่ามีพื้นที่ขนาดใหญ่ที่ไม่มีความเสี่ยงจากน้ำท่วมเลย ชุดข้อมูลทั้งคู่ได้รับการทำซ้ำเป็น 4326 และทั้งสองตารางมีดัชนีเชิงพื้นที่ ข้อความค้นหาด้านล่างของฉันทำงานเป็นเวลา 3 วันในขณะนี้และไม่แสดงสัญญาณว่าจะเสร็จเร็ว ๆ นี้! select a.id, f.risk_factor_1, f.risk_factor_2, f.risk_factor_3 into gb.addresses_with_flood_risk from gb.flood_risk_areas f, gb.addresses a where ST_Contains(f.the_geom, a.the_geom); มีวิธีที่เหมาะสมที่สุดในการเรียกใช้หรือไม่ นอกจากนี้สำหรับเคียวรีที่รันนานชนิดนี้วิธีที่ดีที่สุดในการติดตามความคืบหน้านอกเหนือจากการดูการใช้ทรัพยากรและ pg_stat_activity …

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