คำถามติดแท็ก postgis

PostGIS เป็นส่วนเสริมสำหรับฐานข้อมูลเชิงสัมพันธ์เชิงวัตถุของ PostgreSQL ที่เพิ่มการรองรับวัตถุทางภูมิศาสตร์

3
วิธีการสอดแทรกตำแหน่ง GPS ใน PostGIS
ฉันมีตารางตำแหน่ง GPS ของ PostGIS ทุกห้าวินาที: 2011-01-01 00:00:05, POINT(x1,y1) 2011-01-01 00:00:10, POINT(x2,y2) 2011-01-01 00:00:15, POINT(x3,y3) ... ฉันกำลังค้นหาข้อความค้นหาที่จะคืนค่า (เวลาและจุด) ทุกวินาที มันก็โอเคที่จะคิดว่าจุดเชื่อมต่อกันเป็นเส้นตรง ฉันกำลังมองหาวิธีการทำเช่นนี้โดยเฉพาะในฐานข้อมูลและไม่ได้โดยการเขียนสคริปต์ภายนอก

5
ไฟล์รูปร่างขนาดใหญ่ถึงแรสเตอร์
ฉันมีไฟล์รูปร่างขนาดใหญ่ (1 gb) และจำเป็นต้องทำการแรสเตอร์อีกครั้ง ฉันได้ลองสิ่งต่อไปนี้แล้ว 1. ) นำเข้าสู่ GRASS โดยใช้v.in.ogrสิ่งนี้ล้มเหลวพร้อมกับข้อความแสดงข้อผิดพลาด: ข้อผิดพลาด: G_realloc: ไม่สามารถจัดสรร 498240036 ไบต์ที่ break_polygons.c: 188 2. ) ความคิดที่สองของฉันคือใช้ PostGIS นำเข้ารูปร่างไฟล์แล้วลองอีกครั้งที่ตำแหน่ง x, y ของกริดจากนั้นเอ็กซ์พอร์ตคะแนนเหล่านี้และสร้างกริดจาก xyz ฉันนำเข้ารูปร่างที่ประสบความสำเร็จ (รูปหลายเหลี่ยมและคะแนน) แต่การตัดกัน 1 ล้านรูปหลายเหลี่ยมที่มีคะแนน 300k ดูเหมือนจะช้ามาก ฉันใช้คำพูด PostGIS ต่อไปนี้อาจมีห้องสำหรับการปรับปรุง select polygons.land_id,grid.geom from grid,polygons where grid.geom && polygons.geom and within(grid.geom,polygons.geom) 3. ) ฉันลองใช้simplify()PostGIS ด้วย …

2
รับเรขาคณิตจากหลาย ๆ ตารางโดยใช้ PostGIS
ฉันยังใหม่กับ PostGIS, PostgreSQL และ SQL โดยทั่วไป ฉันมีตาราง 44 ตารางในฐานข้อมูล PostGIS ของฉันและแต่ละตารางแสดงเลเยอร์ข้อมูลเวกเตอร์ที่แตกต่างกัน แต่ละไฟล์ถูกโหลดจากรูปร่างที่แยกต่างหากและแต่ละคอลัมน์จะมีคอลัมน์ที่อธิบายถึงรูปทรงเรขาคณิตสำหรับชั้นที่เรียกว่าwkb_geometry ฉันต้องการเลือกรูปหลายเหลี่ยมที่เฉพาะเจาะจงในชั้นหนึ่งแล้วเรียกรูปทรงเรขาคณิตทั้งหมดจากชุดย่อยของชั้นที่ซ้อนทับกล่องขอบเขตของรูปหลายเหลี่ยมนั้น ฉันไม่รู้สึกจู้จี้จุกจิกเกี่ยวกับการออกคำสั่ง แต่มันจะมีประโยชน์ถ้ามันถูกจัดระเบียบโดยตารางแต่ละกลุ่มของรูปทรงเรขาคณิตมาจาก นี่คือตัวอย่างของคำสั่ง SQL ของฉัน: SELECT ST_AsEWKT(wkb_geometry) /* Some of this data has z values, hence the EWKT */ FROM table2, table3, table4, table5 WHERE wkb_geometry && ( SELECT wkb_geometry FROM table1 WHERE ogc_fid = 25 ); …
13 postgis  sql 

2
การใช้ GIS แบบโอเพ่นซอร์สของโมเดล Huff
สิ่งนี้อาจยืดออกไป แต่ฉันสงสัยว่าใครใช้เครื่องมือสร้างแบบจำลองแรงโน้มถ่วงหรือสคริปต์สำหรับการวิเคราะห์ตลาดค้าปลีก (เช่น Huff Model) เพื่อวิเคราะห์ข้อมูลเชิงพื้นที่สำหรับความสัมพันธ์กับลูกค้าในร้านค้า? มีแหล่งข้อมูล ESRI สองแหล่ง (รวมถึงส่วนขยายนักวิเคราะห์ธุรกิจ) แต่ฉันไม่เคยเห็นแหล่งข้อมูลโอเพ่นซอร์สมาก่อน ดูเหมือนว่าสถานที่ที่ PostGIS สามารถใช้ประโยชน์จากคุณภาพฐานข้อมูลได้จริง /programming/2837870/huff-model-in-gis http://arcscripts.esri.com/details.asp?dbid=15999 เอกสารอ้างอิง (ล้าสมัย แต่บทความที่เกี่ยวข้องอธิบายแนวคิด): การวิเคราะห์พื้นที่การค้าปลีกโดยใช้แบบจำลองอารมณ์โกรธ วิธีใช้ Arc10: การสร้างแบบจำลองศักยภาพการขาย การปรับเทียบกระดาษขาวรุ่น Huff ในนักวิเคราะห์ธุรกิจ ArcGIS บทความ ICSC

3
การรวมข้อมูล Shapefile ลงในฐานข้อมูล
ฉันมีรูปร่างหลายร้อยไฟล์จากโครงการ GIS ต่างๆที่ฉันต้องการเริ่มรวมเข้ากับแพลตฟอร์มฐานข้อมูลเดียวซึ่งขณะนี้กำลังพยายามทำสิ่งนี้กับ Postgres / PostGIS แทบจะไม่มีข้อมูลใด ๆ ที่ได้มาตรฐาน - หมายความว่ามันเป็นประเภทข้อมูลเดียวกันจำนวนมากแต่ชื่อ / ประเภทของแอตทริบิวต์เฉพาะไม่ตรงกัน ฉันจะเริ่มแก้ไขปัญหานี้ได้ที่ไหน ฉันควรพัฒนาแบบจำลองมาตรฐานเพื่อโอนย้ายรูปร่างแต่ละไฟล์เป็นอันดับแรก (เช่น Hydro_line, transport_line, มาตรฐาน Hydro_poly ฯลฯ ) หรือไม่ อีกทางเลือกหนึ่งคือการนำเข้าแต่ละ Shapefile ลงใน Postgres แยกจากกันดังนั้น shp แต่ละอันจะกลายเป็นตารางในฐานข้อมูล แต่ฉันไม่แน่ใจเกี่ยวกับเรื่องนี้ในแง่ของประสิทธิภาพและการจัดระเบียบ รู้สึกถึงความล่าช้าอย่างหลีกเลี่ยงไม่ได้ ... มีคำแนะนำใดเกี่ยวกับการจัดการกับภารกิจที่น่ากลัวนี้หรือไม่?

2
การดาวน์โหลดข้อมูลแรสเตอร์สู่ python จาก postgis โดยใช้ psycopg2
ฉันมีข้อมูลแบบแรสเตอร์ในตาราง postgres ที่ฉันต้องการใช้เป็น python ในรูปแบบ numpy ฉันใช้ psycopg2 เพื่อเชื่อมต่อกับฐานข้อมูล ฉันสามารถดาวน์โหลดข้อมูล แต่กลับมาเป็นสตริง (อาจเป็นเลขฐานสองต่อเนื่อง) ไม่มีใครรู้วิธีการใช้สายนี้และแปลงเป็นอาร์เรย์ numpy? ฉันสำรวจตัวเลือกอื่น ๆ เพื่อดาวน์โหลดแรสเตอร์เช่นใช้ st_astiff และเข้ารหัสเพื่อดาวน์โหลดไฟล์ hex และใช้ xxd แต่มันไม่ทำงาน ฉันยังคงได้รับข้อผิดพลาด 'rt_raster_to_gdal: ไม่สามารถโหลดไดรเวอร์ GDAL เอาต์พุต' และฉันไม่ได้รับอนุญาตให้ตั้งค่าตัวแปรสภาพแวดล้อมเพื่อให้สามารถเปิดไดรเวอร์ได้ TL, DR: ต้องการนำเข้าข้อมูลแรสเตอร์เข้าสู่อาร์เรย์ numpy (โดยใช้ python)

1
จะใช้ ST_DelaunayTriangles เพื่อสร้างไดอะแกรม Voronoi ได้อย่างไร
(แก้ไข 2019) ST_VoronoiPolygonsมีให้ตั้งแต่ PostGIS v2.3 ! ด้วย PostGIS 2.1+ เราสามารถใช้ST_DelaunayTriangles ()เพื่อสร้างDelaunay triangulationซึ่งเป็นกราฟคู่ของแผนภาพ Voronoiและในทางทฤษฎีพวกเขามีการแปลงที่แน่นอนและย้อนกลับได้ มีสคริปต์มาตรฐาน SQL ที่ปลอดภัย พร้อมอัลกอริธึมที่เหมาะสมสำหรับการแปลง PostGIS2 Delaunay-to-Voronoi นี้หรือไม่? อ้างอิงอื่น ๆ : 1 , 2

2
กำลังโหลด shapefile ไปยังตารางที่ระบุใน postgis โดยใช้ ogr2ogr
ฉันได้สร้างตารางเรขาคณิตเป็น postgis แล้ว ฉันต้องการโหลดรูปร่างหลายไฟล์ลงในตารางนั้นโดยใช้ ogr2ogr แต่ฉันไม่พบพารามิเตอร์ที่สามารถระบุตารางนั้น ogr2ogr -append -f "PostgreSQL" PG:"dbname=db and so on" shapefile.shp แค่นั้นแหละ. ฉันจะเพิ่มพารามิเตอร์เพื่อระบุตารางได้อย่างไร
13 postgis  ogr2ogr 

1
ผสานหลายตารางลงในตารางใหม่ใน PostGIS
ฉันกำลังมองหาที่จะรวมจำนวนของแต่ละตารางลงในตารางใหม่ใน PostGIS นี่เป็นงานง่ายเมื่อทำงานกับข้อมูล Shapefile แต่ฉันไม่แน่ใจว่าจะทำอย่างไรใน PostGIS ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก. ฉันคิดว่าฉันใช้ผนวก แต่ฉันไม่แน่ใจว่าจะเริ่มต้นที่ไหน
13 postgis  merge 

2
จะกรองคุณสมบัติในเลเยอร์ได้อย่างไร?
ฉันกำลังพยายามแสดงคุณสมบัติบางอย่างในเลเยอร์ที่อิงกับ Shapefile โดยใช้ QGIS ฉันได้พบฟังก์ชั่นชุดย่อยในแผงคุณสมบัติซึ่งทำสิ่งที่ฉันต้องการ แต่น่าเบื่อเกินไปเพราะฉันต้องร่อนด้วยตนเองผ่านคุณสมบัติจำนวนมาก มีวิธีที่เร็วกว่าในการทำเช่นนี้? ฉันใช้ทั้งรูปร่างและ PostGIS ที่ดีที่สุด Dietmar

1
คำนำหน้า ST_ เหมาะสมสำหรับฟังก์ชั่นที่ไม่รวมอยู่ใน SQL / MM ตอนที่ 3 หรือไม่?
ผมอ่านกระทู้ในเชิงพื้นที่ส่วนขยายสำหรับ Presto ในปัญหา Github นี้ซึ่งเป็นฟังก์ชั่นline_locate_pointได้รับการแนะนำ มันขึ้นอยู่กับST_LineLocatePointฟังก์ชั่นของ PostGIS ซึ่งจะส่งกลับทุ่นที่เป็นตัวแทนของเศษส่วนตามเส้นของจุดที่ใกล้ที่สุดในบรรทัดนั้นไปยังตำแหน่งที่กำหนด คำถามเกิดขึ้นเพราะเหตุใดจึงตั้งชื่อline_locate_pointและไม่ST_LineLocatePointเหมือนรุ่น PostGIS การตอบสนองเป็นว่าการทำงานนี้ไม่ได้อยู่ใน SQL / MM ส่วนที่ 3 ST_มาตรฐานและดังนั้นจึงไม่ควรเริ่มต้นด้วย การอ่านผ่านมาตรฐานอย่างรวดเร็วฉันไม่เห็นความคิดเห็นใด ๆ เกี่ยวกับวิธีจัดการกรณีที่คุณแนะนำฟังก์ชันเชิงพื้นที่ให้กับฐานข้อมูลของคุณที่ไม่ได้อยู่ในมาตรฐาน จิตวิญญาณของST_คำนำหน้าเพื่อแยกความแตกต่างของฟังก์ชั่นเชิงพื้นที่จากฟังก์ชั่นที่ไม่ใช่เชิงพื้นที่ (ดูเหมือนจะเป็นกรณีที่มี PostGIS) หรือมันคือการระบุว่าฟังก์ชั่นเป็นไปตามฟังก์ชั่นที่เทียบเท่าใน SQL / MM ตอนที่ 3? เมื่อมองถึงสถานะปัจจุบันของ API ของ Prestoฉันต้องบอกว่าวิธีการหลังดูสะอาดน้อยลงและทำให้เกิดความสับสนว่าทำไมชื่อไม่สอดคล้องกัน แต่บางทีนี่อาจแก้ไขได้ด้วยข้อความง่ายๆที่ด้านบน จากนั้นคำถามของฉันคือว่ามีบางส่วนของมาตรฐานที่ฉันมองเห็นหรือไม่ซึ่งอนุญาตให้ส่วนขยายเกินกว่าชุดวัตถุเชิงพื้นที่ที่กำหนดไว้หรืออีกวิธีหนึ่งหากเป็นสิ่งต้องห้ามอย่างชัดแจ้งโดยกฎบางข้อที่เป็นลายลักษณ์อักษรหรือไม่ได้เขียน .

1
สิทธิ์ใน INSERT ใน PostGIS / QGIS
ฉันกำลังพยายามกำหนดสิทธิ์ในฐานข้อมูลของฉันสำหรับผู้ใช้เพื่อให้สามารถอัปเดต, แทรก, ลบและแน่นอนว่าเลือกบนตารางทางภูมิศาสตร์ เนื่องจากฉันใช้ SERIAL บางประเภทสำหรับรหัสของฉันฉันไม่ต้องการให้ผู้ใช้มีความเป็นไปได้ในการแก้ไขฟิลด์นี้ด้วยตนเอง ดังนั้นฉันจึงกำหนดสิทธิ์คอลัมน์ฉลาด มันใช้งานได้ดีในส่วน UPDATE แต่ปุ่มใน QGIS ช่วยให้การสร้างวัตถุใหม่ยังคงเป็นสีเทา วิธีเดียวที่ดูเหมือนว่าจะใช้งานได้คือเมื่อฉันไม่ได้ระบุฟิลด์ใด ๆ ในคำนิยามสิทธิ์ แม้ว่าฉันจะเลือกเขตข้อมูลทั้งหมดมันไม่ทำงาน (แม้ว่าฉันจะคิดว่าจะไม่ระบุคอลัมน์ใด ๆ และการระบุเขตข้อมูลทั้งหมดจะเหมือนกัน) ดูเหมือนว่าจะเป็นสิ่งที่ฉันไม่เข้าใจหรือมีข้อ จำกัด ในคำนิยามสิทธิพิเศษสำหรับการโต้ตอบที่เหมาะสมระหว่าง DB และ QGIS ใครบ้างมีข้อมูลหรือคำแนะนำใด ๆ ที่สามารถช่วยให้ฉันเข้าใจว่าเกิดอะไรขึ้นและ / หรือ (ดียิ่งขึ้น) ช่วยให้ฉันบรรลุเป้าหมายได้หรือไม่ ฉันสามารถจัดการกับสิ่งนั้นได้โดยตั้งค่าฟิลด์เป็นไม่สามารถแก้ไขได้ในการกำหนดสไตล์ แต่เนื่องจากใครก็ตามสามารถตั้งค่าตามที่พวกเขาโปรดฉันต้องการทางเลือกที่ปลอดภัยมากขึ้น ใช้งาน QGIS 2.14, PostGIS 2.3 สำหรับ PostgreSQL 9.5
12 qgis  postgis 

3
การสร้างแผนภาพ Voronoi ใน PostGIS
ฉันพยายามที่จะสร้างแผนภาพ Voronoi จากตารางของจุดใช้รหัสดัดแปลงมาจากที่นี่ นี่คือแบบสอบถาม SQL หลังจากแก้ไขของฉัน: DROP TABLE IF EXISTS example.voronoi; WITH -- Sample set of points to work with Sample AS (SELECT ST_SetSRID(ST_Union(geom), 0) geom FROM example."MeshPoints2d"), -- Build edges and circumscribe points to generate a centroid Edges AS ( SELECT id, UNNEST(ARRAY['e1','e2','e3']) EdgeName, UNNEST(ARRAY[ ST_MakeLine(p1,p2) , ST_MakeLine(p2,p3) , …

1
วิธีการมองเห็นค่าการวัดตาม linestrings ใน QGIS
ฉันมีรูปทรงเรขาคณิตของ LineStringM ค่าการวัดแสดงถึงความลาดชัน (หรือการไล่ระดับสีของกระแสน้ำ) ที่แต่ละจุดในเรขาคณิต ฉันชอบตัวเลือกการจัดแต่งทรงผมที่แข็งแกร่งของ QGIS แต่ฉันไม่สามารถหาวิธีที่จะทำให้ค่าการวัดแต่ละค่าไปตามการเคลื่อนไหวของฉัน เป็นการดีที่ฉันจะมีสีฟ้าสำหรับการไล่ระดับสีช้าและสีแดงสำหรับการไล่ระดับสีที่สูงชันมาก เพื่อช่วยให้เข้าใจสิ่งที่ฉันพยายามทำให้สำเร็จสมมติว่าเราได้ใช้การอ้างอิงเชิงเส้นเพื่อเข้ารหัสความยาวของ LinestringM ที่ผ่านมาจนถึงค่าการวัดของแต่ละจุด ที่ด้านบนสุดคุณจะมี 1.0 และที่ด้านล่างคุณจะได้ 0.0 ฉันได้เพิ่มภาพสิ่งที่ฉันหวังว่าจะทำให้สำเร็จด้านล่าง ฉันทำสิ่งนี้ใน Paint.NET ดังนั้นมันจึงเป็นแค่เรื่องจำลอง เชื่อมโยงโดยตรงกับภาพ คุณจะทำสิ่งนี้ให้สำเร็จใน QGIS ได้อย่างไร?
12 qgis  postgis  style 

2
จัดกลุ่มการเชื่อมต่อที่เชื่อมต่อกันใน PostGIS?
ฉันมีตารางถนนที่ฉันเลือกโดยอิงจากชุดของคุณลักษณะ (สมมติว่าเป็นspeed_limit < 25) มีกลุ่มถนนที่ต่อเนื่องกันในท้องถิ่น ฉันต้องการจัดกลุ่มชุดการเชื่อมต่อเหล่านี้เป็น GeometryCollections ในภาพด้านล่างจะมี GeometryCollections สองอัน: อันหนึ่งมีเส้นสีแดงและอีกเส้นที่มีเส้นสีฟ้า ฉันพยายามเรียกใช้คำค้นหา "ละลายยุบรวม" สองสามบรรทัดตาม: SELECT (ST_Dump(st_union)).geom FROM (SELECT ST_Union(geom) FROM roads) sq ด้วยทุกสิ่งที่ฉันได้ลองฉันจะลงเอยด้วยฟีเจอร์เดียว ( ST_Union) หรือเรขาคณิตดั้งเดิมของฉัน ( ST_DumpจากST_Union) อาจเป็นไปได้ที่จะทำเช่นนี้ด้วยWITH RECURSIVEเวทมนตร์บางชนิด?

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