ระบบสารสนเทศทางภูมิศาสตร์

ถามตอบสำหรับนักทำแผนที่นักภูมิศาสตร์และผู้เชี่ยวชาญด้าน GIS

2
วิธีแก้ไข“ หลุมอยู่นอกเปลือก”
ฉันได้รับชุดข้อมูลที่มีรูปหลายเหลี่ยมซึ่งมีการปรับปรุงรูปทรงเรขาคณิตโดยปลั๊กอิน QGIS " Geometry Updater " ตอนนี้ผมมีปัญหาที่ว่าใน PostGIS ฉันได้รับรูปทรงเรขาคณิตที่ไม่ถูกต้องด้วยข้อผิดพลาด"หลุมอยู่เปลือกนอก" แต่เมื่อสังเกตเรขาคณิตใน QGIS จริง ๆ แล้วมีสองรูปร่างโดยที่หนึ่งคือเรขาคณิตหลักและอีกหลุม (อาจ) ST_Polygonผมคิดว่าเหตุผลของเรื่องนี้ก็คือว่าประเภทรูปทรงเรขาคณิตถูกกำหนดให้ แต่แม้หลังจากเปลี่ยนST_MultiPolygonเป็นข้อผิดพลาดยังคงอยู่ มีคนมีความคิดในการแก้ไขปัญหานี้อย่างไร ด้วยตนเองใน QGIS จะดี แก้ไข: นี่คือ WKT ดั้งเดิมของรูปร่างในภาพ (ก่อนที่จะเปลี่ยนเป็นST_MultiPolygon): รูปหลายเหลี่ยม ((681328,211640639 5312556.84866055,681333.876018639 5312566.85338355,681344.126811639 5312584.17146655,681360.13777864 5312605.81168455,681368.571629639 5312620.16794654,681375.15817664 5312633.84801255,681380.74133464 5312647.74367554,681384.01769064 5312658.41482554,681392.01169764 5312694.63471254,681393.07199764 5312701.83700354,681389.16681464 5312705.85459254,681379.79126564 5312704.26135554,681393.93193764 5312715.39845154,681401.81727164 5312723.43382354,681398.09962564 5312710.95653254,681395.19739764 5312693,68448654 , 681387.20535464 5312657.40285554,681383.87846764 5312644.38168654,681378.69327164 5312632.35257854,681367.00831364 5312610.47778954,681346.401239639 …
10 qgis  postgis  geometry 

1
ทำไม st_intersects เร็วกว่า &&
มันเป็นตารางคะแนน ~ 1 ล้านระเบียน SELECT COUNT(*) as value FROM alasarr_social_mv s; Output: 976270 ดูเหมือนว่า st_intersects บังคับให้ใช้ดัชนีเชิงพื้นที่ แต่ && ไม่ ตัวอย่างการใช้ST_Intersects(282ms) SELECT COUNT(*) as value FROM alasarr_social_mv WHERE ST_Intersects( the_geom_webmercator, ST_MakeEnvelope(-410961,4920492,-402305,4926887,3857) ) Aggregate (cost=34370.18..34370.19 rows=1 width=0) (actual time=282.715..282.715 rows=1 loops=1) -> Bitmap Heap Scan on alasarr_social_mv s (cost=5572.17..34339.84 rows=60683 width=0) (actual …

2
การเพิ่มระบบพิกัดในเลย์เอาต์ในผู้แต่ง QGIS?
ฉันต้องการทราบว่ามีวิธีเพิ่มฟิลด์ระบบพิกัดแบบไดนามิกในเค้าโครงของนักแต่งเพลง QGIS หรือไม่ ฉันสามารถใช้นิพจน์เพื่อเพิ่มหลายรายการเช่นชื่อเอกสารพา ธ ไฟล์ ฯลฯ แต่ฉันไม่สามารถหาวิธีเพิ่มระบบพิกัดได้หรือไม่

3
แหล่งเรียนรู้สำหรับ PyQGIS? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันกำลังมองหาแหล่งข้อมูลเพื่อการเรียนรู้ PyQGIS มันจะน่าสนใจหากมีหนังสือหรือเว็บไซต์ที่ให้ตัวอย่างที่เป็นประโยชน์สำหรับการเรียนรู้ไวยากรณ์หรือทำงานเฉพาะอย่างให้สำเร็จ แหล่งข้อมูลเหล่านี้ควรเป็นแนวทางทั่วไปสำหรับผู้เริ่มต้นและผู้ใช้ที่มีประสบการณ์ จะหาบทช่วยสอน QGIS และแหล่งข้อมูลบนเว็บได้ที่ไหน? เป็นคำถามที่คล้ายกันมาก แต่ให้ความช่วยเหลือในการเรียนรู้ QGIS และไม่ใช่เฉพาะ PyQGIS (อันที่จริงแล้วมันไม่มีแท็ก PyQGIS) ความช่วยเหลือใด ๆ

1
เปลี่ยนขนาดเครื่องหมายในพล็อตด้วย GeoPandas
ฉันมีรหัสทางภูมิศาสตร์กับคะแนนและข้อมูลที่เกี่ยวข้องบางส่วน ฉันต้องการลงจุดบนแผนที่โดยใช้ geopandas และมีขนาดของจุดที่สอดคล้องกับหนึ่งในคอลัมน์ใน geodataframe จนถึงตอนนี้ฉันมีรหัสต่อไปนี้: base = world.plot(color='white', figsize=(20,10)) geo_df.plot(ax=base, marker='.', color='red', markersize = geo_df['Pop_2005']) plt.xlim([-85, -60]) plt.ylim([-5, 12.5]); แต่ฉันได้รับข้อผิดพลาดต่อไปนี้: TypeError: cannot convert the series to <class 'float'> ความคิดใด ๆ

1
ทำไมระยะวงรีถึงมากกว่าระยะทางคาร์ทีเซียน?
ฉันได้สร้างฟีเจอร์เพื่อการใช้งานบางอย่างใน EPSG: 32632 (WGS 84 / UTM zone 32N) ยาว 10,000 เมตร QGIS คำนวณความยาวของเส้นทั้งหมด (แนวนอนแนวตั้งและแนวทะแยง) เป็น 10 001.9 ม. เครื่องมือวัดอธิบาย "การแปลงโครงการ CRS เปิดอยู่และเลือกการคำนวณรูปวงรีพิกัดจะถูกเปลี่ยนเป็นรูปวงรีที่เลือก (WGS84) และระยะทางจะคำนวณเป็นเมตร" เมื่อฉันตั้งค่ารูปวงรีเป็น "ไม่มี / Planimetric" ในคุณสมบัติของโครงการฉันได้รับผลลัพธ์ที่คาดหวัง (10 000 m) ฉันไม่เข้าใจวลี "พิกัดถูกเปลี่ยนเป็นรูปวงรีที่เลือก (WGS84)" มันเป็นการแปลงให้เป็นองศาที่ไม่มีโครงการหรือไม่ (4326?) ตั้งแต่ 32632 มีพื้นฐานมาจาก WGS84 แล้วมีอะไรที่จะเปลี่ยนแปลงบ้างไหม? หากมีการคำนวณแบบ "great circle" ที่เกี่ยวข้องฉันคาดหวังว่าความยาวจะน้อยลงเท่านั้น การคำนวณของ QGIS นั้นถูกต้อง …

1
การใช้ 'ตัวแปรชั่วคราว' ในนิพจน์ชนิดเลเยอร์สัญลักษณ์สัญลักษณ์ QGIS Geometry หรือไม่
การใช้ประโยชน์จากGeometry generatorประเภทเลเยอร์สัญลักษณ์ฉันวาดรูปสี่เหลี่ยมขนาด@nv_bg_w(ความกว้าง) และ@nv_bg_h(ความสูง) (ตัวแปรโครงการ) ไปยังคุณลักษณะของเส้นไม่ว่าจะที่พิกัดtext_x, text_y(คุณลักษณะหากไม่NULL) หรือที่กึ่งกลางของบรรทัดโดยการแสดงออกต่อไปนี้: geom_from_wkt( 'POLYGON((' || COALESCE("text_x", x(point_on_surface($geometry))) ||' '|| COALESCE("text_y", y(point_on_surface($geometry))) || ','|| (to_real(COALESCE("text_x", x(point_on_surface($geometry)))+ @nv_bg_w )) ||' '|| COALESCE("text_y", y(point_on_surface($geometry))) || ','|| (to_real(COALESCE("text_x", x(point_on_surface($geometry)))+ @nv_bg_w )) ||' '|| (to_real(COALESCE("text_y", y(point_on_surface($geometry))))- @nv_bg_h ) || ','|| COALESCE("text_x", x(point_on_surface($geometry))) ||' '|| (to_real(COALESCE("text_y", y(point_on_surface($geometry))))- @nv_bg_h ) || ','|| …

1
เรียก gdal_merge เป็นสคริปต์ไพ ธ อน
ฉันยังใหม่กับงูหลามและตั้งใจที่จะใช้ gdal_merge ในสคริปต์ไพ ธ อน (สายลับ) ฉันใช้ Windows 10, Python 3.6 และมีเครื่องมือ gdal ติดตั้งจาก osgeo4w ฉันรู้ว่าโพสต์อื่น ๆ อธิบายถึงปัญหานี้แต่ไม่มีใครสามารถช่วยฉันแก้ไขปัญหานี้ได้ เมื่อฉันเรียกโมดูล gdal จากคำสั่งมันทำงานเหมือนมีเสน่ห์: python "C:\OSGeo4W64\bin\gdal_merge.py" -o merged.tif input1.tif input2.tif อย่างไรก็ตามฉันไม่สามารถทำงานได้อย่างถูกต้องในสคริปต์ไพ ธ อน (Spyder) วิธีแรกสร้างผลลัพธ์ แต่ไม่ใช่ชื่อที่ถูกต้อง: สร้างไฟล์ 'out.tif' และไม่ใช่ไฟล์ 'merged.tif' ตามที่ฉันร้องขอ: import sys sys.path.append('C:\\OSGeo4W64\\bin') import gdal_merge as gm gm.main(['-o', 'merged.tif', 'N00W078.tif', 'N00W079.tif']) วิธีที่สองไม่สร้างผลลัพธ์: …

2
ข้อมูลฉลากตำแหน่งที่กำหนดไว้สำหรับสเกลมากกว่าหนึ่งในหนึ่งเลเยอร์
ฉันกำลังมองหาโซลูชันการติดฉลากที่ดีขึ้นสำหรับโครงการของฉัน ดูเหมือนจะเป็นเรื่องยาก - แต่บางทีฉันแค่ตาบอด โครงการของฉัน: ฉันสร้างหนังสือจักรยาน - ธุดงค์ มาตราส่วนหลักคือ 1: 75k และมีระดับเมือง 10k และมาตราส่วนภาพรวม 200k เพราะฉันชอบที่จะมีตำแหน่งป้ายกำกับ "ที่เกี่ยวกับการทำแผนที่" ฉันจึงแตะที่ทุกป้ายกำกับและย้ายไปยังตำแหน่งที่ดีที่สุด ฉันต้องทำเช่นนี้กับทุกสเกลเดียวดังนั้นคอลัมน์การติดฉลากของฉันสำหรับ 3 สเกลจะมีลักษณะดังนี้ ('สเกล 1' ย่อมาจาก 10k 'สเกล 2' สำหรับ 75k และ 'สเกล 3' สำหรับ 200k): แต่ก่อนที่ฉันจะพยายามอธิบายรายละเอียดฉันสร้างตัวอย่างโครงการง่ายๆที่คุณสามารถดูและทดสอบโซลูชันการทำฉลาก (เก่า) ของฉันสำหรับเครื่องชั่ง 3 เครื่อง: http://www.map-site.de/tmp/LabelingExample.zip มันทำงานได้ แต่: คุณต้องติดฉลากคอลัมน์สำหรับเครื่องชั่งทุกเครื่อง คุณต้องการเลเยอร์สำหรับทุกสเกล ฉันกำลังมองหาทางออกที่ดีกว่าโดยไม่มีเลเยอร์และคอลัมน์ที่ซ้ำกัน ฉันเชื่อในความคิดสร้างสรรค์ของคุณ! แก้ไข: ฉันได้เพิ่มแผนที่ที่มีความหนาแน่นสูงทั้งสองนี้เป็นตัวอย่าง: มีเพียงตำแหน่งเดียวที่เป็นไปได้เพียงอย่างเดียวสำหรับ "St. …
10 qgis  labeling  scale 

1
วิธีรับรายการรูปแบบ gdal ที่รองรับภายในไพ ธ อน
มีวิธีรับรายการรูปแบบ gdal ที่ติดตั้งบนระบบที่มี python หรือไม่? บนบรรทัดคำสั่งสามารถทำได้อย่างง่ายดายด้วย: gdalinfo --formats ... แต่มันสามารถทำได้ในหลาม?
10 python  raster  gdal 

3
อ่านเพียงบางส่วนของไฟล์รูปร่าง ESRI ลงใน R
ฉันมีไฟล์รูปร่าง ESRI ที่มีขนาดใหญ่มาก (> 8000 polygons, .shp ไฟล์> 32MB) ซึ่งฉันต้องการอ่านเป็น R บน Windows 7 ฉันคุ้นเคยกับ rgdal และ readOGR () อย่างไรก็ตามด้วยขนาดของ shapefile การอ่าน shapefile ทั้งหมดในหน่วยความจำจึงเป็นกระบวนการที่ช้ามาก นอกจากนี้ฉันสนใจเพียงไม่กี่โพลิกอนคลัสเตอร์ (<100) จาก 8,000 ที่มีอยู่ในรูปร่างไฟล์ กระบวนการที่ฉันต้องทำคือทำซ้ำอย่างมากนั่นคือต้องโหลดรูปร่างไฟล์หลายครั้งดังนั้นจึงช้ามาก ดังนั้นฉันสงสัยว่ามันเป็นไปได้ที่จะอ่านเฉพาะในส่วนของ shapefile เพื่อเร่งกระบวนการ ดูเหมือนว่าไม่น่าจะโหลดข้อมูลจำนวนมหาศาลเช่นนั้นทิ้งส่วนใหญ่
10 shapefile  r  rgdal 

1
R gstat krige () - เมทริกซ์ความแปรปรวนร่วมที่ตำแหน่ง [5.88,47.4,0]: การข้าม
เมื่อฉันต้องการที่จะดำเนินการ kriging บางครั้งก็ใช้งานได้ขึ้นอยู่กับค่าที่ฉันใช้ใน DataTable ของฉัน เป็นผลมาจากฟังก์ชั่น krige ฉันได้รับvar1.pred: NA NA NA ...และvar1.var: NA NA NA ...(แต่เฉพาะเมื่อฉันใช้ค่า "ผิด" ใน DataTable ของฉัน) ตัวอย่างเช่น: มันทำงานได้เสมอ (จนถึงตอนนี้) เมื่อฉันใช้เพียง 10 ค่า มันใช้งานได้เมื่อฉันใช้ 50 ค่า แต่ใช้ได้กับบางค่าเท่านั้น มันใช้งานไม่ได้เมื่อฉันใช้ 50 ค่าและค่า "ผิด" ใช้งานได้เมื่อฉันใช้ 25 ค่าและค่าที่กล่าวถึงก่อนหน้านี้ "ผิด" ฉันไม่เข้าใจว่าทำไมบางครั้งมันถึงทำงานได้และบางครั้งก็ไม่ สิ่งที่แปลกคือเมื่อฉันเพิ่มลงZwiesel;49.02999878;13.22999954;2.2ใน DataTable มันจะทำงานเมื่อฉันใช้น้อยกว่า ~ 20 ค่า แต่มันไม่ทำงานเมื่อฉันใช้มากกว่า 50 ค่า ... ความผิดพลาดของฉันอยู่ที่ไหน …

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

4
วิธีการแปลงฟิลด์สตริงเป็นฟิลด์วันที่
ฉันมีเลเยอร์ที่มีจุดซึ่งแสดงถึงอุบัติเหตุบนท้องถนนที่ร้ายแรงและฟิลด์ "date_14_D" มีวันที่ แต่ประเภทของมันคือสตริง ฉันต้องการแปลงฟิลด์สตริงเป็นฟิลด์วันที่ แต่ปุ่มตกลงไม่ทำงาน มีปัญหาอะไร? ฉันใช้ QGis ดูภาพด้านล่าง

1
เพิ่มเขตข้อมูลและคำนวณนิพจน์ด้วย PyQGIS หรือไม่
ฉันต้องการใช้ PyQGIS เพื่อเพิ่มเขตข้อมูลใหม่และคำนวณค่าสำหรับแต่ละคุณสมบัติ คล้ายกับตัวเลือก Field Calculator นิพจน์ 'Field Calculator' ของฉันเป็นตัวอย่าง: y(start_point($geometry)) from PyQt4.QtCore import QVariant from qgis.core import QgsField, QgsExpression, QgsFeature vl = iface.activeLayer() vl.startEditing() #step 1 myField = QgsField( 'myNewColumn', QVariant.Float ) vl.addAttribute( myField ) idx = vl.fieldNameIndex( 'myNewColumn' ) #step 2 e = QgsExpression( 'y(start_point($geometry))' ) e.prepare( vl.pendingFields() …

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