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

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

5
การเพิ่มประสิทธิภาพการนำเข้า osm2pgsql สำหรับข้อมูล OSM
ขณะนี้ฉันกำลังสร้างอินสแตนซ์บน EC2 ที่จะนำเข้าภาพรวม Planet.osm ทั้งหมดของมูลค่าข้อมูลทั่วโลกสำหรับบางโครงการที่เรากำลังดำเนินการ ฉันได้ปั่นอินสแตนซ์ Ubuntu x64 ขนาดใหญ่และแนบหน่วยเก็บข้อมูลแยกต่างหากมากมายบนไดรฟ์ EBS สำหรับฐานข้อมูล Postgres และปรับเปลี่ยนเพื่อเก็บข้อมูล PGSQL ที่นั่น ตอนนี้เซิร์ฟเวอร์กำลังมีปัญหาในการใช้งานosm2pgsqlการนำเข้าสแน็ปช็อต ... หลังจากสองสามครั้งที่มีการกำหนดค่าหน่วยความจำที่แตกต่างกันและ whatnot กระบวนการจะส่งเอาต์พุต "ฆ่า" หลังจากผ่านไปเกือบตลอดเวลา เมื่อมันถูกฆ่าตายในขณะที่ "ไปทางที่รอดำเนินการ" และในครั้งต่อไปหลังจากปรับแคชที่เพรียวบางเล็กน้อยมันจะไปถึง "วิธีการประมวลผล" ก่อนที่จะหยุดทำงาน จากสิ่งที่ฉันอ่านนี่เป็นเรื่องปกติเนื่องจากปัญหาด้านความจำ นี่คือความพยายามครั้งล่าสุดของฉันในการเรียกใช้การนำเข้า: osm2pgsql -v -U osm -s -C 4096 -S default.style -d osm /data/osm/planet-latest.osm.bz2 และนี่คือรายละเอียดสำหรับอินสแตนซ์ขนาดใหญ่บน EC2: อินสแตนซ์ขนาดใหญ่หน่วยความจำ 7.5 GB, หน่วยคำนวณ EC2 4 หน่วย …

6
การจัดการกับข้อมูลที่กระจายข้ามเขต UTM หรือไม่
ฉันมีข้อมูลที่แผ่กระจายไปทั่วทั้งสองโซน UTM GDA / MGA94 UTM Zone 55 และ 56 ฉันมีเลเยอร์เช่น cadastre, ถนน, ท่อ ฯลฯ ที่ฉันต้องการเก็บการวัดเช่นความยาวและพื้นที่เป็นเมตรหรือสัญกรณ์บางชนิดไม่ใช่ องศา! วิธีจัดการที่ดีที่สุดใน PostGIS คืออะไร (ฉันใช้ PostGreSQL 8.4 PostGIS 1.5) ฉันควรจัดเก็บข้อมูลของฉันเป็นพิกัดทางภูมิศาสตร์ของ GDA94 และใช้การทำงานบางอย่างเพื่อคำนวณการวัดที่ฉันต้องการหรือไม่ หรือมีวิธีอื่นในการจัดการกับเรื่องนี้?

2
กำลังค้นหาอัลกอริทึมในการตรวจจับการวนรอบและจุดเริ่มต้นและจุดสิ้นสุดของวงกลมหรือไม่?
ฉันมีข้อมูลเที่ยวบินมากมายจากนักบินเครื่องร่อนในรูปแบบของการแก้ไข gps ในช่วงเวลาที่แน่นอน ฉันต้องการวิเคราะห์เส้นทางการบินและตรวจจับจุดเริ่มต้นและจุดสิ้นสุดของ 'วง' นักบินเครื่องร่อนจะทำเมื่อเขาพบความร้อน อัลกอริทึมจะให้ฉันเริ่มต้นและจุดสิ้นสุดในบรรทัดกำหนดหนึ่ง "วงกลม" คะแนนเหล่านี้อาจเท่ากับหนึ่งในการแก้ไข gps และไม่จำเป็นต้องถูกแก้ไข ฉันสามารถเดินไปตามเส้นทางบินตรวจสอบอัตราการหมุนและมีเกณฑ์ตัดสินว่าเครื่องร่อนกำลังหมุนวนหรือไม่ ในขณะที่ฉันใช้ PostgreSQL กับส่วนขยาย PostGIS ฉันสงสัยว่ามีวิธีที่ดีกว่าในการแก้ไขปัญหานี้หรือไม่ ฉันมีขั้นตอนการคำนวณมุมของส่วนของเส้นสองส่วนแล้ว: CREATE OR REPLACE FUNCTION angle_between( _p1 GEOMETRY(PointZ,4326), _p2 GEOMETRY(PointZ,4326), _p3 GEOMETRY(PointZ,4326) ) RETURNS DECIMAL AS $$ DECLARE az1 FLOAT; az3 FLOAT; BEGIN az1 = st_azimuth(_p2,_p1); az3 = st_azimuth(_p2,_p3); IF az3 > az1 …

2
หน่วยที่ใช้ใน ST_Distance () คืออะไร
ST_Distanceฉันสงสัยว่าหน่วยเป็นของลอยที่ถูกส่งกลับมาจาก ในเอกสารอธิบายว่า: ... ระยะทางขั้นต่ำของคาร์ทีเซียน (ขึ้นอยู่กับการอ้างอิงเชิงพื้นที่) ระหว่างรูปทรงเรขาคณิตทั้งสองในหน่วยที่คาดการณ์ไว้ หน่วยที่คาดการณ์เหล่านี้คืออะไร? รูปทรงเรขาคณิตถูกเก็บไว้ในเขตข้อมูล: geometry(Point,4326).

3
วิธีสร้างฐานข้อมูล 'gis' ใหม่ใน PostGIS
ฉันต้องการสร้างฐานข้อมูลใหม่ใน PostGIS ดังนั้นฉันสามารถโหลดสิ่งต่างๆลงไปได้ในขณะที่กำลังใช้ฐานข้อมูลปัจจุบัน ตามเอกสาร การกระจายแพคเกจบางส่วนของ PostGIS (โดยเฉพาะตัวติดตั้ง Win32 สำหรับ PostGIS> = 1.1.5) โหลดฟังก์ชัน PostGIS ลงในฐานข้อมูลแม่แบบที่เรียกว่า template_postgis หากฐานข้อมูล template_postgis มีอยู่ในการติดตั้ง PostgreSQL ของคุณผู้ใช้และ / หรือแอปพลิเคชันสามารถสร้างฐานข้อมูลที่เปิดใช้งานเชิงพื้นที่โดยใช้คำสั่งเดียว ในกรณีของฉันสิ่งนี้ดูเหมือนจะไม่เป็นเช่นนั้น: $ createdb -T template_postgis my_spatial_db createdb: database creation failed: ERROR: template database "template_postgis" does not exist ในอดีตที่ผ่านมาฉันมีปัญหากับการคัดลอกgisฐานข้อมูลหลักแล้วลบเนื้อหาของตารางทั้งหมด จะต้องมีวิธีที่ดีกว่า คุณจะทำอย่างไรถ้าคุณตั้งใจปล่อยมัน?

2
แนวทางปฏิบัติที่ดีที่สุดสำหรับฐานข้อมูลและ API ด้วยข้อมูลทางภูมิศาสตร์ที่ขยายแอนติเมริเดียน
แนวปฏิบัติที่ดีที่สุดสำหรับการจัดเก็บคุณลักษณะทางภูมิศาสตร์ (เส้นรูปหลายเหลี่ยมและเทียบเท่าหลายส่วน) เมื่อคุณสมบัติเหล่านี้ครอบคลุม antimeridian (± 180 °ลองจิจูด) และต้องถูกส่งไปและรับจากเว็บแอปพลิเคชันลูกค้าเป็น GeoJSON ฉันเริ่มทำงานกับเว็บ API ฝั่งเซิร์ฟเวอร์ด้วยการสนับสนุนจากฐานข้อมูล Postgres / PostGIS เพื่อทำงานกับแทร็กไซโคลนเขตร้อนและประวัติศาสตร์และพยากรณ์ลม พายุไซโคลนจำนวนมากในมหาสมุทรแปซิฟิกมีแนวโน้มที่จะโชคร้ายที่จะข้ามแอนติเมริเดียนซึ่งบางครั้งก็มีอายุการใช้งานหลายครั้ง: ในฐานะชาวนิวซีแลนด์ที่อาศัยอยู่ใกล้กับ antimeridian ฉันพบปัญหานี้บ่อยครั้งในข้อมูลระดับภูมิภาคที่จะมีกลวิธีการเผชิญปัญหา แต่ฉันอยากจะรู้ว่าสิ่งใดที่ถือว่าเป็นวิธีปฏิบัติที่ดีที่สุด น่าเสียดายที่ไม่มีคำถามที่ติดแท็กantimeridian อยู่ดังนั้นจึงยากที่จะค้นหาคำถามที่เกี่ยวข้อง คำถามเหล่านั้นที่ฉันได้เห็นการดิ้นรนปัญหานี้ทั้งหมดดูเหมือนจะหาคำแนะนำเฉพาะแอปพลิเคชันมาก คำถามนี้กล่าวถึง antimeridian สั้น ๆ สำหรับกรณีของรูปหลายเหลี่ยม GeoJSON ที่ครอบคลุมทั่วโลกโดยไม่มีขอบเขต คำถามนี้ค่อนข้างใกล้กับสิ่งที่ฉันถาม ฉันต้องเก็บไซโคลนประวัติศาสตร์และการพยากรณ์ในฐานข้อมูลเชิงพื้นที่ แต่ฉันคาดว่าจะมีปัญหากับแอนติเมริเดียน ตัวอย่างเช่นเส้นเริ่มต้นที่ละติจูด / ลองจิจูด(0,179)และสิ้นสุดที่(0,-179)ไม่ชัดเจนเกี่ยวกับทิศทางของมัน: ไม่ว่าจะใช้เส้นทางสั้นข้าม antimeridian หรือ "ล้อมรอบ" ทั่วทั้งดาวเคราะห์ เส้นทางดังกล่าวควรจัดเก็บไว้ในฐานข้อมูลเชิงพื้นที่อย่างไร (โดยเฉพาะฉันทำงานกับ PostGIS แต่ฉันหวังว่าโซลูชันนี้จะใช้งานได้ทั่วไป) ความคิดบางอย่างที่ฉันมี: ไม่ทำการเปลี่ยนแปลงรูปทรงเรขาคณิตและเลื่อนความกำกวมไปยังแอปพลิเคชันไคลเอนต์ แยกคุณลักษณะใด ๆ …

2
ใน PostGIS เป็นไปได้ไหมที่จะสร้างมุมมองด้วย ID ที่ไม่ซ้ำใคร
เมื่อฉันสร้างมุมมองใน PostGIS มีวิธีใดที่จะเพิ่ม ID เฉพาะลงในมุมมองนั้น เช่นเดียวกับฟิลด์ "gid" ในตาราง PostGIS อื่น ๆ แก้ไข:ขออภัยฉันควรรวมไว้ในโพสต์ต้นฉบับ ฉันใช้ PostGresql 9.0 และ PostGIS 1.5 Ando

5
ทางเลือกแทน ogr2ogr สำหรับการโหลดไฟล์ GeoJson ขนาดใหญ่ไปยัง PostGIS
ฉันมีไฟล์ GeoJson ขนาด 7GB ที่ฉันต้องการโหลดลงในฐานข้อมูล PostGIS ฉันได้ลองใช้ ogr2ogr แล้ว แต่มันล้มเหลวเพราะไฟล์ใหญ่เกินไปสำหรับ ogr2ogr ที่จะโหลดลงในหน่วยความจำแล้วประมวลผล มีทางเลือกอื่นสำหรับการโหลดไฟล์ geojson นี้ลงใน PostGIS หรือไม่ ข้อผิดพลาด ogr2ogr ที่ฉันได้รับคือ: ข้อผิดพลาด 2: CPLMalloc (): หน่วยความจำไม่เพียงพอจัดสรร -611145182 ไบต์ แอปพลิเคชั่นนี้ร้องขอให้ Runtime ทำการยกเลิกในลักษณะที่ผิดปกติ โปรดติดต่อทีมสนับสนุนของแอปพลิเคชันสำหรับข้อมูลเพิ่มเติม

2
การผสมประเภทรูปทรงเรขาคณิตในหนึ่งตาราง PostGIS
ฉันประสบกับปัญหาต่อไปนี้ ฉันต้องย้ายจากฐานข้อมูล Oracle ไปยัง PostgreSQL + PostGIS ปัจจุบันรูปทรงเรขาคณิตทุกประเภททุกประเภทจะถูกเก็บไว้ในตารางเดียวและแต่ละระเบียนจะมีช่อง "ฝา" ซึ่งระบุถึงคุณสมบัติของเลเยอร์เดียวกัน ข้อดีและข้อเสียของการใช้วิธีการดังกล่าวคืออะไร ฉันควรแบ่งข้อมูลออกเป็นหลาย ๆ ตารางหรือไม่หากฉันไม่ต้องการใช้ฐานข้อมูลกับซอฟต์แวร์ของ บริษัท อื่น สิ่งที่เกี่ยวกับประสิทธิภาพของการค้นหาเชิงพื้นที่ดัชนีจะช่วยฉันได้อย่างไร

5
เครือข่ายที่กำหนดเส้นทางได้ง่ายขึ้นได้อย่างไร?
ฉันมีกราฟเครือข่ายที่ฉันต้องการที่จะลดความซับซ้อนในแง่ของการลดจำนวนของขอบ แนวคิดจะผสานโหนดที่อยู่ติดกันและลบการเชื่อมต่อขอบสั้น สิ่งนี้จะเกิดขึ้นได้อย่างไรใน PostGIS หรือ GRASS หรือมีวิธีใดที่ดีกว่าในการทำให้เครือข่ายง่ายขึ้นเช่นนี้โดยอัตโนมัติ ฉันได้ลองใช้ฟังก์ชั่น ST_SnapToGrid แล้ว แต่ฉันไม่พอใจกับผลลัพธ์ (grey = original, black = snapped):

4
ลดความซับซ้อนของรูปหลายเหลี่ยมที่อยู่ติดกันโดยใช้ PostGIS
ฉันพบปัญหาที่ทำให้ชุดรูปหลายเหลี่ยมที่อยู่ติดกันง่ายขึ้น ถ้าฉันทำให้รูปหลายเหลี่ยมแต่ละอันแยกจากกันด้วยอัลกอริทึม Douglas – Peucker (ซึ่งใช้โดยเครื่องมือโอเพนซอร์ซหลายแห่ง) รูปหลายเหลี่ยมที่เป็นผลลัพธ์มักจะไม่ติดกันอีกต่อไป ปัญหานี้มีอยู่เช่นเมื่อทำให้ชายแดนของประเทศ / จังหวัดง่ายขึ้น ใครบ้างมีวิธีแก้ปัญหาโดยใช้ PostGIS

1
เข้าร่วมเลเยอร์กับองค์ประกอบที่เกี่ยวข้องกับ PostGIS Topology
ขณะนี้ฉันใช้ส่วนขยายโทโพโลยีของ PostGIS แต่ฉันมีปัญหาในการทำความเข้าใจว่าโครงสร้างทำงานอย่างไร: หนึ่งในประเด็นสำคัญคือการใช้ "เลเยอร์" s: สิ่งที่ฉันเข้าใจคุณลักษณะคุณลักษณะควรเก็บไว้ในตารางจากสคีโครงสร้างของโทโพโลยี (หนึ่งชื่อtopo_actualname) และลงทะเบียนเป็นเลเยอร์ของโทโพโลยีAddTopoGeometryColumnนั้น แต่มีวิธีง่าย ๆ ที่จะเข้าร่วมแอตทริบิวต์ (เก็บไว้ในตารางชั้น) ที่มีคุณสมบัติตามลำดับ (องค์ประกอบในnode, faceหรือedge_data)? ตอนนี้สิ่งที่ฉันทำคือ: SELECT whatever FROM layer_tb l JOIN topo_topologyname.edge_data e ON (l.topo).id=edge_id; แต่ฉันคิดว่าlayerแนวคิดทั้งหมดนั้นค่อนข้างไร้ประโยชน์ถ้าฉันต้องรู้ทั้งชื่อสคีโทโพโลยีและเลเยอร์ชื่อเพื่อรับข้อมูลที่ฉันต้องการ ในความเป็นจริงฉันคิดว่าฉันเข้าใจว่าtopoคอลัมน์บนเลเยอร์มีข้อมูลเพียงพอที่จะรู้ว่าโทโพโลยีนั้นเกี่ยวข้องกันที่ไหนและยิ่งกว่านั้นtopologyสคีมาก็เก็บการอ้างอิงไปยังแต่ละตารางเลเยอร์สำหรับแต่ละโทโพโลยี มีวิธีสั้น ๆ / ง่าย / เหมาะสมในการเข้าร่วมข้อมูลด้วยกันไหม? ฉันกำลังมองหาบางอย่างในฟังก์ชั่นการขยายโทโพโลยีแต่ไม่พบสิ่งที่มีประโยชน์

3
Postgis TopologyException: ข้อขัดแย้งตำแหน่งด้านข้างที่ 226.001 39.5158 ปัญหาคืออะไร
หลังจาก st_union () PgSQL ส่งคืนบันทึกย่อ: NOTE: TopologyException: side location conflict at 226.001 39.5158 และในผลลัพธ์มีสองแถวที่มีรูปทรงเรขาคณิตที่ว่างเปล่าและแถวอื่น ๆ ก็โอเค ทำให้เกิดปัญหาอะไร วิธีแก้ปัญหา

4
PostGIS จะมีข้อได้เปรียบเหนือ MySQL สำหรับแอปพลิเคชันฟาร์มผลิตหรือไม่
ฉันมีเว็บแอปที่เก็บที่ตั้งของฟาร์มในเวสต์มิชิแกน คุณสามารถค้นหาผลิตภัณฑ์ (เช่น "บร็อคโคลี่") และมันจะแสดงให้คุณเห็นฟาร์มทั้งหมดที่เติบโตผลิตภัณฑ์นั้น ตอนนี้ฉันใช้ MySQL และใช้ตรีโกณมิติเพื่อคำนวณความแตกต่างระหว่างที่ตั้งของผู้ใช้และที่ตั้งของแต่ละฟาร์ม มันไม่ได้เป็นวิธีที่ไม่ดีที่จะไป แต่มันใช้เวลาทำ อีกสิ่งหนึ่งที่ฉันต้องการทำในไม่ช้าก็คือการทำแผนที่ฤดูกาลที่กำลังเติบโตสำหรับผลิตภัณฑ์ที่แตกต่างกันสำหรับภูมิภาคต่างๆ (ตัวอย่างเช่นฉันต้องการแสดงให้เห็นว่าอะโวคาโดเติบโตในช่วงเวลาหนึ่งของปีในแคลิฟอร์เนีย แต่ไม่มีโอไฮโอ) ฉันรู้ว่านี่เป็นคำถามปลายเปิดและไร้เดียงสา แต่ฉันควรจะเปลี่ยนมาใช้ PostgreSQL / PostGIS เพื่อใช้ประโยชน์จากความสามารถเชิงพื้นที่หรือไม่

3
ประสิทธิภาพแย่ด้วยการจัดเก็บแรสเตอร์ขนาดใหญ่ใน PostGIS และการสร้างภาพใน QGIS
คำถามของฉันเกี่ยวข้องกับการใช้งานและประสิทธิภาพของเครื่องมือซอฟต์แวร์หลายอย่างที่ใช้ร่วมกันคือ PostgreSQL, PostGIS, QGIS และ GDAL ฉันเป็นผู้ใช้ ArcGIS, Python และ R มาเป็นเวลานานและมีความสนใจที่จะเปลี่ยนเป็นระบบ GIS โอเพ่นซอร์สและลินุกซ์ฟรี เมื่อเร็ว ๆ นี้ฉันสนใจใช้ QGIS (ver 2.8) ร่วมกับ PostgreSQL (ver 9.4) และ PostGIS (ver 2.1) และฉันได้ติดตั้งซอฟต์แวร์ลงในคอมพิวเตอร์ที่ใช้ Windows 8.1 x64 (รายละเอียดคอมพิวเตอร์โดยย่อ: ThinkPad X200s พร้อมกับ 2.1GHz Core 2, RAM 8GB และ 240GB SSD) เมื่อฉันเรียนรู้วิธีการจัดการข้อมูลเชิงพื้นที่ของฉัน (มูลค่าประมาณ 100GB) ฉันต้องการเรียกใช้ Ubuntu บนเครื่องนี้ …

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