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

Python เป็นภาษาโปรแกรมโอเพ่นซอร์สที่ใช้ในโปรแกรม GIS จำนวนมาก

1
เธรด OGR / GDAL ส่งผลให้มีการใช้งาน core ต่ำ
ฉันพยายามประมวลผลข้อมูลแรสเตอร์โดยใช้ ogr / gdal และฉันไม่สามารถใช้ประโยชน์จากคอร์ทั้งหมดในเครื่องได้ เมื่อฉันเรียกใช้กระบวนการบนแกนเดียวฉันได้รับประโยชน์ 100% ของแกนนั้น เมื่อฉันพยายามที่จะแบ่งออกเป็นมัลติคอร์ (ในตัวอย่างด้านล่างโดย chunking x ชดเชยและวางไว้ในคิว) ฉันได้รับการใช้ประโยชน์ที่น่าสงสารในแต่ละ 8 แกนของฉัน ดูเหมือนว่าจะเพิ่มการใช้ประโยชน์ได้สูงสุด 100% ในแต่ละคอร์ (เช่น 12.5% ​​สำหรับแต่ละคอร์) ฉันกังวลว่าการใช้แหล่งข้อมูลเดียวกันคือคอขวด แต่ฉันก็ทำซ้ำไฟล์แรสเตอร์ต้นแบบสำหรับแต่ละคอร์ ... และการใช้งานคอร์ยังคงอึอยู่ สิ่งนี้ทำให้ฉันเชื่อว่า ogr หรือ gdal ทำตัวเหมือนทรัพยากรที่ใช้ร่วมกันในคอขวด แต่ฉันไม่พบสิ่งใดทางออนไลน์เกี่ยวกับเรื่องนั้น ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมมาก! นี่คือฟังก์ชัน "ผู้ช่วยเหลือ" ที่ทำงานภายในแต่ละเธรดผู้ทำงาน: def find_pixels_intersect_helper(datasource, bounds_wkt, x_min, x_max): bounds = ogr.CreateGeometryFromWkt(bounds_wkt) rows_to_write = [] for …

3
จะเพิ่มการรองรับไดร์เวอร์ FileGDB (ไฟล์ Esri gdb API) ใน fiona ได้อย่างไร?
มีคำถามมากมายเกี่ยวกับเรื่องนั้น แต่ไม่มีใครแก้ปัญหาของฉันได้ ฉันมีเครื่องด้วย: Windows 7 x64 Python 3.4.3 x 64 GDAL ติดตั้งgdalinfo --version --> GDAL 1.11.4, released 2016/01/25; gdal ถูกติดตั้งจากล้อGDAL-1.11.4-cp34-none-win_amd64.whlจากที่นี่ ติดตั้ง GDAL ไว้C:\Python34\Lib\site-packages\osgeoแล้ว ที่นั่นฉันมีไฟล์. exe หลายไฟล์สำหรับไฟล์ gdal และ ogr และ. pyd ฟิโอน่าติดตั้ง: ถูกติดตั้งจากล้อFiona-1.6.3-cp34-none-win_amd64.whlจากเว็บไซต์เดียวกัน ฉันสามารถเรียกใช้รหัสนี้และทำงานได้สำเร็จ: import gdal import ogr from gdalconst import * shp = r"C:\Data\GIS\PTS.shp" driver = ogr.GetDriverByName('ESRI Shapefile') dataset …

3
GeoPandas / Shapely ทำงานในพื้นที่และระยะทางเท่าใด
ดูเหมือนคำถามงี่เง่า แต่ฉันไม่สามารถหาคำตอบที่ชัดเจนเกี่ยวกับสิ่งที่: geopandas หน่วย / หุ่นดีใช้คำนวณระยะทาง / พื้นที่ระหว่างวัตถุ?

3
การเลือกคุณสมบัติโดยใช้นิพจน์ด้วย PyQGIS
ฉันจะเลือกคุณสมบัติด้วย PyQGIS โดยใช้นิพจน์ได้อย่างไร ฉันพยายามใช้QgsExpressionแต่วิธีการเลือกไม่ได้: exp = QgsExpression("'ogc_fid' = 482") cLayer = canvas.currentLayer() cLayer.select(exp) เป็นไปได้และถ้าเป็นเช่นนั้นฉันจะทำอย่างไร

1
Python: ค้นหาวิธีการคำนวณ“ inner centroid” (หรือที่รู้จักกันว่า labelPoint in arcmap) ของรูปหลายเหลี่ยม
ฉันกำลังมองหาวิธีในการคำนวณพิกัด X, Y ของจุดภายใน (หรือที่เรียกว่า labelPoint ใน arcmap) ของรูปหลายเหลี่ยม (ผิดปกติ) ฉันพยายามหาวิธีแก้ปัญหาโดยไม่ต้องใช้โมดูล ArcGIS ความแตกต่างระหว่าง "เซนทรอยด์" และ labelPoint คือเซนทรอยด์อาจอยู่นอกรูปหลายเหลี่ยม ฉันใช้โมดูลหุ่นดี จาก shapely.geometry นำเข้ารูปหลายเหลี่ยม ref_polygon = Polygon(points) # get the x and y coordinate of the centroid ref_polygon.centroid.wkt 'POINT (558768.9293489187300000 6361851.0362532493000000)' ใช้ข้อมูลต่อไปนี้ (จุดยอดของรูปหลายเหลี่ยมของฉัน) ขอบคุณล่วงหน้าสำหรับความช่วยเหลือและคำแนะนำ points = [(560036.4495758876, 6362071.890493258), (560036.4495758876, 6362070.890493258), (560036.9495758876, 6362070.890493258), (560036.9495758876, …

1
GeoPandas to_file () บันทึก GeoDataFrame โดยไม่ต้องมีระบบพิกัด
ฉันมี GeoPandas 0.2.1 py27_0 ฟิโอน่า 1.7.0 np110py27_1 Python 2.7.10 ติดตั้งในสภาพแวดล้อม Anaconda 2-4.1.1-Windows-x86 ฉันสามารถสร้างได้GeoDataFrameโดยการอ่านชุดข้อมูลอินพุตและใช้งานข้อมูล แต่การบันทึกชุดข้อมูลเอาต์พุตไม่รักษาระบบพิกัดไว้ import geopandas as gpd world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres')) world.to_file(driver='ESRI Shapefile',filename=r'C:\GIS\Temp\world_out.shp') สิ่งworld_out.shpนี้มีคุณลักษณะและสกีมาของซอร์สไฟล์รูปร่าง แต่ระบบพิกัดไม่ได้ถูกกำหนด ( <Unknown>) world_out.prjไฟล์ 0 KB และไม่ได้มีอะไร out = gpd.read_file(r'C:\GIS\Temp\world_out.shp') print out.crs >>> {} ฉันทดสอบเพื่อใช้งานโดยใช้ฟิโอน่าบริสุทธิ์และใช้งานได้ดีโดยรักษาcrsข้อมูลไว้: import fiona datasrc_path = r'C:\Program Files (x86)\ArcGIS\Desktop10.4\TemplateData\TemplateData.gdb' with fiona.drivers(): with fiona.open(datasrc_path,layer='cities') …

1
จะดูคำสั่งพิมพ์ผ่าน Python Script ในขณะที่เขียนโปรแกรมเสริมสำหรับ QGIS ได้อย่างไร?
มีวิธีการใช้งานปลั๊กอินที่กำหนดเองที่สร้างขึ้นสำหรับ QGIS ที่ Python Shell สามารถปรากฏขึ้นพร้อมกันเมื่อมีการเรียกใช้ปลั๊กอินเช่นหน้าจอดีบักหรือไม่? ฉันขอให้สิ่งนี้รู้ว่ามีวิธีดูคำสั่งพิมพ์ผ่าน Python Script หรือไม่ขณะเขียนโปรแกรมเสริมสำหรับ QGIS

4
ไม่มีโมดูลชื่อ 'osgeo'
ฉันได้ติดตั้ง GDAL และตรวจสอบในบรรทัดคำสั่งมันใช้งานได้และเมื่อฉันเรียกใช้ gdal2tiles.py ในบรรทัดคำสั่งมันใช้งานได้ แต่เมื่อฉันเรียกใช้ไฟล์เดียวกัน gdal2tiles.py กับ python IDLE ฉันได้รับ "ไม่มีโมดูลชื่อ 'osgeo ข้อผิดพลาด "" คุณช่วยได้ไหม
13 python  gdal  osgeo  osgeo4w  pyqt4 

1
อัลกอริธึมการเปลี่ยนแปลงขั้นต่ำของกล่องการเปลี่ยนแปลง
ฉันกำลังพยายามสร้างอัลกอริทึมที่คล้ายกับกล่อง bounding ต่ำสุด (แม้ว่ามันอาจจะดูไม่มีอะไรเหมือน) ในกรณีนี้มุมจะถูกส่งผ่านเป็นพารามิเตอร์และกำหนดมุมที่ฉันต้องการสี่เหลี่ยมเล็กที่สุดที่ครอบคลุมทุกจุด / รูปหลายเหลี่ยมของฉัน จนถึงแนวความคิดของฉันคือการหาจุดศูนย์กลางของจุดของฉัน (อัลกอริธึมเซนทรอยด์) และจากนั้นสร้างเส้นคู่ขนานสองเส้นที่มีมุมเดียวกับมุมพาราเมตริกและอีกสองเส้นตั้งฉากกับพวกเขา จากนั้นใช้การวนซ้ำย้ายบรรทัดเหล่านี้ออกด้านนอก (ในทิศทางตรงกันข้าม) จนกว่าจะมีจุดทั้งหมด ยังไม่จำเป็นต้องเป็นกล่องขั้นต่ำที่แน่นอนงานประมาณ (ฉันเดาว่าจะขึ้นอยู่กับขนาดของแต่ละขั้นตอนการทำซ้ำ) นี่คือรหัสของฉันจนถึงตอนนี้ ฉันได้ยุบรูปหลายเหลี่ยมทั้งหมดของฉันเป็นหนึ่งเดียว ฉันจะใช้เปลือกนูนเพื่อลดจุดยอด ฉันใส่จุดยอดทั้งหมดในรายการ - ไม่แน่ใจว่าจะช่วยได้หรือไม่ a = layer.getFeatures() for feat in a: geom = feat.geometry() a = geom.convexHull() vertexId = QgsVertexId() vertices = [] b = a.constGet().nextVertex(vertexId) while b[0]: vertices.append(b[1]) b = a.constGet().nextVertex(vertexId) หมายเหตุ: …

2
QGIS ไม่สามารถโหลดได้
ฉันติดตั้งไพ ธ อนไลบรารีจำนวนหนึ่งโดยใช้ pip (pandas, scipy, simplekml) และนับตั้งแต่ทุกครั้งที่ฉันพยายามโหลด QGIS ฉันได้รับข้อผิดพลาดนี้: Warning: loading of qgis translation failed [/usr/share/qgis/i18n//qgis_en_US] Warning: loading of qt translation failed [/usr/share/qt4/translations/qt_en_US] Warning: QCss::Parser - Failed to load file "/style.qss" Warning: QVariantMap DBusMenuExporterDBus::getProperties(int, const QStringList&) const: Condition failed: action Warning: QVariantMap DBusMenuExporterDBus::getProperties(int, const QStringList&) const: Condition failed: action …

1
การอ่านไฟล์รูปภาพ S3 Sentinel-2 พร้อม rasterio
ขณะนี้ฉันพบข้อผิดพลาด 'ปฏิเสธการเข้าถึง' หลังจากใช้ rasterio เพื่อเปิดไฟล์รูปภาพ Sentinel-2 AWS .jp2 (ปัจจุบันโฮสต์โดย Sinergise และสามารถพบได้ที่นี่ ) รหัสของฉันมีลักษณะเช่นนี้: import rasterio access_key = '*****************' secret_access_key = '***********************' region_name = 'eu-central-1' Session = rasterio.env.Env(aws_access_key_id=access_key, aws_secret_access_key=secret_access_key, region_name=region_name) url = 's3://sentinel-pds/tiles/10/S/DG/2015/12/7/0/B01.jp2' with Session: with rasterio.open(url) as dataset: print dataset คำตอบคือ: --------------------------------------------------------------------------- CPLE_AWSAccessDenied Traceback (most recent call last) <ipython-input-1-4f6da7274649> in …

2
ทำ shapefile จากดาต้าดาต้าเฟรม
ฉันต้องการสร้าง shapefile จากเฟรมข้อมูล Pandas โดยใช้แถว lon & lat ฉันมีไฟล์ csv และฉันประมวลผลด้วยแพนด้าเพื่อทำเฟรมข้อมูลซึ่งง่ายต่อการจัดการ มันเป็นไปได้ไหมที่จะทำอย่างนั้นโดยไม่ต้องทำ loop loop ทีละบรรทัด

2
คำนวณระยะทางที่สั้นที่สุดจากจุดหนึ่งไปอีกบรรทัดโดยใช้ QGIS?
วิธีที่ดีที่สุดในการคำนวณระยะทางจากถนนที่ใกล้ที่สุดสำหรับชุดของจุดที่อยู่ใน QGIS คือมีชุดข้อมูลขนาดใหญ่มาก? (QGIS 2.0.1, Win XP) ฉันอ่านคำตอบของคำถามที่คล้ายกันก่อนหน้านี้: การวัดระยะห่างระหว่างเส้นและจุดใน QGIS วาดเส้นตั้งฉากใน PyQGIS? คำนวณระยะห่างขั้นต่ำระหว่างจุดและรูปหลายเหลี่ยมใน QGIS หรือไม่ /programming/16448402/distance-of-point-feature-to-nearest-polygon-in-r แต่ถึงอย่างไร: ปลั๊กอิน MMQGIS ค้นหาการรบกวนไปยังโหนดที่ใกล้ที่สุดของเครือข่ายสายไม่ใช่ระยะทางสั้นที่สุด (ตั้งฉาก) ไปยังบรรทัด สคริปต์ที่เสนอ R และ Python ทำงานได้อย่างถูกต้องสำหรับชุดข้อมูลขนาดเล็กและสามารถนำไปใช้ในตัวสร้างโมเดลได้ แต่สำหรับงานของฉันฉันมี 530 คะแนนและเลเยอร์ถนนระดับภูมิภาคที่มีคุณสมบัติประมาณ 135'000 คะแนนทั้งหมดจะใช้เวลาจำนวนมหาศาล ฉันมีปัญหาในการทำให้ GRASS ทำงานใน QGIS 2.0.1 ( GRASS ใน QGIS ไม่ทำงาน (windows XP) )
12 qgis  python  r  distance 

3
แยกคุณสมบัติเมื่อตัดกันด้วยคุณสมบัติของอีกชั้นหนึ่งโดยใช้ PyQGIS / Python หรือไม่?
ฉันมีเลเยอร์บัฟเฟอร์ (รูปหลายเหลี่ยมสีเขียว) ซึ่งฉันต้องการแยกเป็นรูปหลายเหลี่ยมสองรูปเมื่อใดก็ตามที่ข้ามสิ่งกีดขวาง (เส้นสีน้ำเงิน) ฉันพยายามใช้วิธี "splitGeometry" แต่ฉันไม่สามารถใช้งานได้ รหัสของฉันคือ: while ldbuffprovider.nextFeature(feat): while barprovider.nextFeature(feat2): if feat.geometry().intersects(feat2.geometry()): intersection = feat.geometry().intersection(feat2.geometry()) result, newGeometries, topoTestPoints=feat.geometry().splitGeometry(intersection.asPolyline(),True) ซึ่งส่งคืน 1 สำหรับผลลัพธ์ (ข้อผิดพลาด) และรายการว่างสำหรับ newGeometries ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก

2
แปลง timeseries stack ของ GTiff raster เป็น NetCDF เดี่ยว
ย้ายจากรายชื่อผู้รับจดหมาย gdal-dev: ในวันจันทร์ที่ 2 ก.ย. 2013 เวลา 19:09 น. David Shean เขียนว่า: สวัสดีรายการฉันพยายามที่จะทำแพคเกจชุด rasters ของ GTiff ที่มีการฉาย / ขอบเขต / ความละเอียดที่เหมือนกันเป็นไฟล์ NetCDF เดียวสำหรับการกระจาย ฉันใช้เวลาในชั่วโมงที่ผ่านมาเพื่อปรึกษา doc ออนไลน์และเล่นกับ gdal_translate, gdalbuildvrt และ gdalwarp โดยไม่ประสบความสำเร็จ มีวิธีง่ายๆในการทำเช่นนี้โดยใช้ยูทิลิตี้บรรทัดคำสั่ง gdal ที่มีอยู่? ฉันคิดว่าฉันจะถามก่อนที่จะใช้โซลูชันที่กำหนดเองโดยใช้ NetCDF Python API ขอบคุณ เดวิด ในวันอังคารที่ 3 กันยายน 2013 เวลา 10:15 น. Etienne Tourigny เขียนว่า: …
12 python  gdal  netcdf 

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