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

PostgreSQL เป็นระบบฐานข้อมูลเชิงสัมพันธ์เชิงวัตถุแบบโอเพ่นซอร์ส

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 บนเครื่องนี้ …

2
เผยแพร่ PostGIS Rasters ใน GeoServer?
ฉันจะเผยแพร่ PostGIS rasters โดยใช้ GeoServer ได้อย่างไร ฉันใช้เวลามากมายในการพยายามสร้างแหล่งข้อมูล Raster โดยใช้ Image Mosaic JDBC แต่ไม่มีโชค ขั้นตอนที่ดำเนินการ: 1. ดาวน์โหลดและติดตั้งส่วนขยาย JDBC Image Mosaic (ทำงานได้ดี) 2. สร้างไฟล์ "พารามิเตอร์การเชื่อมต่อ": connect.postgis.xml.inc: <connect> <dstype value="DBCP"/> <username value="postgres" /> <password value="password" /> <jdbcUrl value="jdbc:postgresql://localhost:5432/db1" /> <driverClassName value="org.postgresql.Driver"/> <maxActive value="10"/> <maxIdle value="0"/> </connect> mapping.postgis.xml.inc: <spatialExtension name="postgis"/> <mapping> <masterTable name="mosaic" > …

4
ฉันจะเพิ่มประสิทธิภาพ pgrouting เพื่อความเร็วได้อย่างไร
ฉันใช้ pgrouting ในฐานข้อมูล postgis ที่สร้างผ่าน osm2pgrouting มันทำงานได้ดีมากในชุดข้อมูลที่มีข้อ จำกัด (วิธี 3.5k เส้นทางที่สั้นที่สุดทั้งหมด A * ค้นหา <20 ms) อย่างไรก็ตามเนื่องจากฉันได้นำเข้ากล่องขนาดใหญ่กว่า (122k วิธี) จาก europe.osm ประสิทธิภาพการทำงานก็ลดลงมาก (เส้นทางที่สั้นที่สุดมีค่าใช้จ่ายประมาณ 900ms) ฉันคิดว่าการใช้ A * ส่วนใหญ่ของขอบเหล่านั้นจะไม่เคยถูกเยี่ยมชมเนื่องจากอยู่นอกเส้นทาง สิ่งที่ฉันได้ทำไปแล้วเพื่อพยายามปรับปรุงความเร็ว: วางดัชนีลงในคอลัมน์รูปทรงเรขาคณิต (ไม่มีเอฟเฟกต์ที่เห็นได้ชัดเจน) เพิ่มหน่วยความจำของฉันจาก 8GB เป็น 16GB เปลี่ยนการตั้งค่าหน่วยความจำ postgresql (shared_buffers, effective_cache_size) จาก (128MB, 128MB) เป็น (1GB, 2GB) (ไม่มีผลที่เห็นได้ชัดเจน) ฉันมีความรู้สึกว่างานส่วนใหญ่กำลังทำอยู่ในห้องสมุด C Boost ที่ซึ่งกราฟกำลังทำอยู่ดังนั้นการปรับ …

1
PostGIS และ QGIS สามารถให้การแก้ไขผู้ใช้หลายคนที่เชื่อถือได้หรือไม่?
หลังจากพิจารณาตัวเลือกสองสามตัวฉันพยายามให้ความสามารถแก่ผู้ใช้ 15-20 QGIS 2.2 ของฉันในการดู / แก้ไขเลเยอร์ PostGIS พื้นฐานหนึ่งหรือสองจุดพร้อมกันหนึ่งอันที่ใหญ่ที่สุดมีเพียง 16,000 บันทึก ฉันได้ติดตั้ง PostgreSQL 9.1 / PostGIS 2.0 แล้วและการทดสอบขั้นพื้นฐานดูเหมือนว่าจะใช้ได้ แต่ก็ยังไม่ได้ปลดปล่อยให้ผู้คนทั่วไปเห็น โดยทั่วไปเราจะมีบรรณาธิการ 2-3 คนต่อครั้ง แต่อาจมีผู้ดู 15 คน การแก้ไขทั้งหมดจะอยู่ใน QGIS ผู้ชมจะเป็น QGIS และ ArcGIS (แต่เราไม่มี SDE) อย่างที่ฉันได้กล่าวไปแล้วไฟล์เหล่านี้เป็นเพียงไฟล์พื้นฐานและการแก้ไขจะเป็นการเพิ่ม / ลบจุดและการแก้ไขบางอย่างในตาราง ฉันไม่กังวลเกี่ยวกับการแก้ไขคุณสมบัติเดียวกันในเวลาเดียวกัน การรวมกันสามารถให้การแก้ไขผู้ใช้หลายคนที่เชื่อถือได้สำหรับไฟล์จุดพื้นฐานสองไฟล์?

4
Shapefile loader ใน pgAdmin 4
เมื่อเร็ว ๆ นี้ฉันได้อัพเดทรุ่น postgresql ของฉัน ฉันได้อัปเกรด pgAdmin จาก 3 เป็น 4 ด้วย แต่ฉันไม่สามารถโหลด shapefile ได้ ฉันไม่พบปลั๊กอินใด ๆ ที่เรียกว่าโหลดเชพไฟล์ ฉันจะรับปลั๊กอินตัวโหลด shapefile ใน pgAdmin 4 ได้อย่างไร

8
ฉันจะเปิดใช้งาน Shapefile GUI Loader ใน pgadmin3 ได้อย่างไร
ฉันติดตั้ง PostgreSQL 9.1 พร้อม PostGIS 1.5.3 บน Ubuntu 11.10 ฉันยังติดตั้ง pgadmin3 1.14.0-beta1 ต่อไปนี้คำแนะนำ ถ้าฉันจำได้อย่างถูกต้องเมื่อฉันติดตั้ง PostGIS บน Windows pgadmin ติดตั้งปลั๊กอิน Shapefile GUI Loader โดยอัตโนมัติแล้ว อย่างไรก็ตามใน Ubuntu เมนูแบบเลื่อนลงปลั๊กอินนั้นว่างเปล่า คำแนะนำฉันพบว่าเฉพาะกับ Windows มีวิธีติดตั้ง / เปิดใช้งานบน Ubuntu หรือไม่?

3
การสร้างตารางเชิงพื้นที่ด้วย PostGIS
ในเอกสาร PostGIS มันบอกว่ามีสองขั้นตอนในการสร้างตารางเชิงพื้นที่ด้วย SQL: สร้างตารางที่ไม่ใช่เชิงพื้นที่ปกติ เพิ่มคอลัมน์เชิงพื้นที่ลงในตารางโดยใช้ฟังก์ชัน OpenGIS "AddGeometryColumn" ถ้าฉันทำตามตัวอย่างฉันจะสร้างตารางที่เรียกว่าterrain_points: CREATE TABLE terrain_points ( ogc_fid serial NOT NULL, elevation double precision, ); SELECT AddGeometryColumn('terrain_points', 'wkb_geometry', 3725, 'POINT', 3 ); หรือถ้าฉันดูตารางที่มีอยู่ในpgAdmin IIIดูเหมือนว่าฉันสามารถสร้างตารางเดียวกันดังนี้: CREATE TABLE terrain_points ( ogc_fid serial NOT NULL, wkb_geometry geometry, elevation double precision, CONSTRAINT terrain_points_pk PRIMARY KEY (ogc_fid), CONSTRAINT enforce_dims_wkb_geometry …

1
เราสามารถสร้างมุมมองผ่านตารางแรสเตอร์ใน Postgis2.0 ได้ไหม?
เป็นไปได้ไหมที่จะสร้างมุมมอง PostgreSQL บนตารางที่มีข้อมูลแบบแรสเตอร์? ฉันประสบความสำเร็จในการสร้างมุมมอง แต่รายการraster_columnsไม่ถูกต้อง (ข้อมูล raster ทั้งหมดหายไป) นอกจากนี้ฉันไม่สามารถเปิดมุมมอง SQL โดยใช้ QGIS (ส่วนใหญ่อาจเป็นเพราะ raster_columns ไม่ถูกต้อง) มันเป็นสถานการณ์เดียวกันกับคำถามนี้ที่gemetry_columns & viewsแต่สำหรับคอลัมน์แรสเตอร์ฉันไม่สามารถหาไวยากรณ์ที่ถูกต้องเพื่อบังคับ typemod ในระหว่างการสร้างมุมมอง ทั้งหมดที่ฉันสามารถหาได้คือ: แรสเตอร์ (ARRAY ['8BUI', '8BUI', '8BUI'], 4326,0.5, -0.5, ... ); แต่สิ่งที่ตามมาหลังจาก "... " เป็นเรื่องลึกลับ มีใครจัดการเพื่อสร้างมุมมองที่มีรายการที่ถูกต้องใน raster_columns? ตัวอย่างสั้น ๆ จะได้รับการชื่นชมอย่างมาก

3
การโหลดแรสเตอร์ลงในฐานข้อมูล PostGIS 2.0 บน Windows
ฉันพยายามหาวิธีโหลดแรสเตอร์ลงในฐานข้อมูล PostGIS2.0 (ฉันได้ถามคำถามก่อนหน้านี้ในหัวข้อนี้ที่นี่และที่นี่ ) ฉันกำลังพยายามใช้raster2pgsql.exeโปรแกรมที่ให้มาพร้อมกับ PostGIS2.0 หลังจากทราบว่าต้องใช้พรอมต์คำสั่งใน windows ในฐานะผู้ดูแลระบบ (ใน Windows 7 เพื่อเรียกใช้บรรทัดคำสั่งในฐานะผู้ดูแลระบบให้พิมพ์cmdลงในแถบค้นหาแล้วกดctrl+ shift+ enter) เพื่อเปิดใช้raster2pgsql.exeงานฟังก์ชันที่ฉันจัดการ โหลดแรสเตอร์ลงในฐานข้อมูลของฉัน ฉันมีไฟล์แรสเตอร์เรียกras_test.tifว่าฉันวางไว้ชั่วคราวในbinโฟลเดอร์ของpostgresqlการติดตั้งของฉัน ใช้รหัสต่อไปนี้ฉันแปลงและโหลดแรสเตอร์นี้: C:\Program Files (x86)\PostgreSQL\9.1\bin>raster2pgsql -s 102003 ras_test.tif -t> elev.sql Processing 1/1: ras_test.tif C:\Program Files (x86)\PostgreSQL\9.1\bin>psql.exe -p 5434 -U postgres -d test2 -f elev.sql BEGIN psql:elev.sql:2: NOTICE: CREATE TABLE will create implicit sequence …

1
วิธีการตั้งค่าดัชนีสำหรับเคียวรีระยะทาง PostGIS อย่างถูกต้องเป็นอย่างไร
ฉันกำลังสร้างโปรแกรมประยุกต์ที่ควรจะแบบสอบถามและกลับทุกRecordในตารางที่เป็นแล้วกิโลเมตรห่างจากX และตำแหน่งของจะถูกกำหนดจากข้อมูลที่จัดทำโดย Google Geocode APIPointXRecordsPointX(long/lat) ฉันใหม่กับ PostGIS หลังจากการวิจัยอย่างรวดเร็วฉันพบคำถามนี้ คำตอบน่าจะเป็นไปตาม: SELECT * FROM your_table WHERE ST_Distance_Sphere(the_geom, ST_MakePoint(your_lon,your_lat)) <= radius_mi * 1609.34 ปัญหาคือ: แม้ว่าฉันเพิ่งเริ่มใช้ GIS เท่านั้นเมื่อฉันดูข้อความค้นหาข้างต้นฉันไม่สามารถจินตนาการได้ว่าวิธีการนี้สามารถใช้ดัชนีได้อย่างไร มีการเรียกใช้ฟังก์ชัน 2 ครั้ง Recordผมคิดว่าตารางการสแกนหาทุก ฉันต้องการที่จะผิด :) คำถาม: PostGIS มีประเภทดัชนีใด ๆ ที่สามารถสร้างข้อความค้นหาด้านบนได้หรือไม่ ถ้าไม่วิธีการที่แนะนำจะทำในสิ่งที่ฉันต้องการคืออะไร

3
ฉันควรคาดหวังว่า PostGIS จะจัดรูปแบบที่อยู่ในรูปแบบที่ดีได้อย่างรวดเร็วเพียงใด
ฉันควรคาดหวังว่า PostGIS จะจัดรูปแบบที่อยู่ในรูปแบบที่ดีได้อย่างรวดเร็วเพียงใด ฉันได้ติดตั้ง PostgreSQL 9.3.7 และ PostGIS 2.1.7 แล้วให้โหลดข้อมูลระดับประเทศและข้อมูลสถานะทั้งหมด แต่พบว่าการเข้ารหัสภูมิศาสตร์จะช้ากว่าที่ฉันคาดไว้มาก ฉันตั้งความคาดหวังไว้สูงเกินไปหรือไม่? ฉันได้รับรหัสเฉลี่ย 3 geocodes ต่อวินาที ฉันต้องทำประมาณ 5 ล้านและฉันไม่ต้องการรอสามสัปดาห์ นี่เป็นเครื่องเสมือนจริงสำหรับการประมวลผลเมทริกซ์ R ยักษ์และฉันติดตั้งฐานข้อมูลนี้ไว้ที่ด้านข้างเพื่อให้การกำหนดค่าอาจดูโง่เล็กน้อย หากการเปลี่ยนแปลงที่สำคัญในการกำหนดค่าของ VM จะช่วยได้ฉันสามารถเปลี่ยนการกำหนดค่าได้ รายละเอียดฮาร์ดแวร์ หน่วยความจำ: โปรเซสเซอร์ 65GB: 6 lscpuให้สิ่งนี้กับฉัน: # lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 6 On-line CPU(s) list: 0-5 Thread(s) …

1
ค้นหา OSM สำหรับชายหาดทั้งหมดที่หันหน้าไปทางทิศตะวันตกใช่ไหม - ต้องการ QGIS
ฉันต้องการระบุชายหาดทั้งหมดบนโลกนี้ (หรือเซตย่อยของมัน) ที่หันหน้าไปทางทิศตะวันตก (+/- 20-30 องศา) ความคิดของฉันคือการใช้ OSM เป็นแหล่งข้อมูล การแยกรูปหลายเหลี่ยมทั้งหมดที่มีแท็ก "natural = beach" ให้ชุดข้อมูล / shapefile ของทุกพื้นที่ที่มีสถานะเป็นชายหาด จนถึงตอนนี้ดีมาก ฉันรู้ว่าฉันสามารถใช้ข้อมูลชายฝั่ง (เช่นจาก OSM หรือ Natural Earth) เพื่อระบุใบหน้าของชายหาด การบัฟเฟอร์รูปร่างชายหาดเพื่อแก้ไขความไม่ตรงกันเล็กน้อยและตัดสิ่งเหล่านี้กับแนวชายฝั่งควรให้ข้อมูลกับฉันว่าด้านใดของรูปร่างที่หันหน้าไปทางน้ำ การใช้ค่าสูงสุด / นาทีของจุดตัดกันทั้งหมดควรให้แนวคิดเกี่ยวกับการแบก (90 องศา +/- 20-30 องศาก็โอเค ... ) และนั่นคือสิ่งที่ฉันหลงทาง ... เครื่องมือที่ฉันต้องการจะเป็น QGIS แต่ PostGIS ก็ใช้ได้เช่นกัน มีใครบ้างไหมที่มีความคิดที่ฉลาดในการไขปริศนานี้?

3
การระบุทางแยกถนนโดยใช้ PostGIS
ฉันพยายามระบุว่าถนนตัดกันซึ่งกันและกันและหาจุดที่สี่แยกนี้ด้วยจำนวนถนนที่เป็นจุดตัดของรายการ ฉันสงสัยว่ามีวิธีการใช้ST_NumPointsเพื่อให้บรรลุสิ่งนี้หรือไม่ แต่ฉันไม่สามารถเข้าใจได้ว่าฉันควรทำอะไร สิ่งที่ฉันทำคือการสร้างตารางคะแนนที่เส้นตัดกันโดยใช้รหัสต่อไปนี้: CREATE TABLE test_points as SELECT ST_Intersection(a.geom, b.geom), a.gid FROM roads as a, roads as b WHERE ST_Touches(a.geom, b.geom); หากฉันเรียกใช้สิ่งนี้บนถนนตัวอย่างฉันจะได้รับตารางคะแนนต่อไปนี้ (ถนนจะแสดงเพื่อเป็นภาพประกอบ): หากฉันตรวจสอบจุดใดจุดหนึ่งฉันเห็นว่ามีหลายจุดซ้อนกันอยู่ด้านบนของกันและกัน: GID ที่นี่เป็นรหัสถนน แต่ฉันไม่เข้าใจว่าทำไมมีหลายจุด ฉันสามารถเข้าใจ 4 คะแนนที่นับเป็นจุดตัดถนนกลาง แต่มี 12 จุดที่ระบุไว้ที่นี่ มีวิธีที่ดีกว่าในการคำนวณใน PostGIS หรือไม่

2
การค้นหารูปทรงเรขาคณิตที่ใกล้เคียงที่สุดใน PostGIS
ฉันได้ดูฟังก์ชั่น PostGIS "API" และฉันสังเกตว่าส่วนใหญ่ใช้องค์ประกอบสองอย่างเพื่อเปรียบเทียบ ตัวอย่างเช่นฟังก์ชัน ST_Distance ใช้องค์ประกอบทางเรขาคณิต / ภูมิศาสตร์สององค์ประกอบเพื่อค้นหาระยะทาง ไม่มีฟังก์ชั่นที่จะทำสิ่งใดเช่น: "ให้รูปทรงเรขาคณิต G ให้รูปทรงเรขาคณิตที่ใกล้ที่สุดกับ GClosest ในตาราง T ที่ G.id <> GClosest.id" ฉันรู้ว่าฉันสามารถเขียนฟังก์ชั่น PL / PgSQL เพื่อย้ำตารางและเรียก ST_Distance ในแต่ละองค์ประกอบได้ แต่ฉันหวังว่าจะมีวิธีแก้ปัญหาที่ดีกว่าและมีประสิทธิภาพมากกว่า

3
วิธีรับ centroid ของชุดคะแนนใน PostGIS
ฉันใช้ PostgreSQL กับส่วนขยาย PostGIS ฉันมีชุดของจุดในคอลัมน์จากตารางthe_geom myschema.myobjectsฉันต้องการสร้างคำสั่ง select เพื่อรับ centroid ของคลัสเตอร์นี้ดังนั้นจากคำสั่ง select ดังนี้: SELECT the_geom FROM myschema.myobjects ฉันต้องการค้นหาไวยากรณ์ที่ถูกต้องสำหรับคำสั่งเช่น: SELECT ST_AsText(ST_Centroid( (SELECT the_geom FROM myshema.myobjects) ));

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