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

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

1
Python: Break linestring ขึ้นอยู่กับสภาพ
ฉันมี dataframe ของ geopandas ซึ่งเป็นพวงของ linestrings ที่มีข้อมูลบางอย่างที่เกี่ยวข้องกับจุดยอด / จุดแต่ละจุด: Point_x = (Lat, Lon, Time, ID, Data1, Data2, Data3) คะแนนจะถูกแปลงเป็น linestrings ตาม ID และเรียงตามเวลา ฉันต้องการทำลาย linestrings ตรงจุดที่ตรงกับเงื่อนไข ตอนนี้คือเมื่อระยะทางระหว่างคะแนนมากกว่าค่าบางอย่าง ในอนาคตอาจเป็นที่ที่ฟังก์ชันของเขตข้อมูลเป็นค่าบางอย่าง ตัวอย่างเช่นแบ่ง linestring เมื่อ Speed ​​ข้าม 5 kph ปัญหาในปัจจุบันคือบางแทร็กเกิดจากจุดที่มี ID ซ้ำกันดังนั้นการวิ่งย้อนกลับไปมาในระยะทางไกลและฉันต้องการให้ขีดแบ่งเส้นแบ่งเหล่านี้ ความคิดใด ๆ เกี่ยวกับวิธีที่ถูกต้องในการจัดโครงสร้างนี้หรือไลบรารี / วิธีการที่อาจใช้ dataframe มีแทร็กมากกว่า 150k ที่มีหลายจุดต่อแทร็คดังนั้นประสิทธิภาพจะดี นี่คือตัวอย่างของแทร็ก DF: ID …

2
วิธีการตั้งค่าความโปร่งใสให้กับหลายค่าแรสเตอร์ด้วย Python
ด้วยรหัสต่อไปนี้ฉันสามารถตั้งค่าความโปร่งใส 100% เป็นค่า raster 0: map=None for lyr in QgsMapLayerRegistry.instance().mapLayers().values(): if lyr.name() == "some_layer": map= lyr tr=None tr=QgsRasterTransparency() tr.initializeTransparentPixelList(0) map.renderer().setRasterTransparency(tr) map.triggerRepaint() ฉันจะกำหนดสองค่า (0 และ 8) ให้โปร่งใส 100% ได้อย่างไร เมื่อฉันทำซ้ำคำสั่งของบล็อกสุดท้ายด้วยค่าแรสเตอร์ 8 ค่าแรก (0) จะถูกลบออกจากเลเยอร์โปร่งใส

1
รูปแบบไบนารีของ ENVI (คลาสสิก) คืออะไร
ฉันเป็น Pythonist ในสำนักงานที่เต็มไปด้วยผู้ใช้ ENVI / IDL ฉันได้สร้างเครื่องมือบางอย่างเพื่อช่วยลดช่องว่าง แต่สิ่งที่ทำให้สะดุดใหญ่คือไฟล์ ENVI Classic .roi ซึ่งเพื่อนร่วมงานของฉันใช้บ่อยๆ ฉันสามารถนำเข้า ENVI 5 ROIs ไปยัง Python ได้อย่างง่ายดายเนื่องจากรูปแบบข้อความจะง่ายต่อการแยกวิเคราะห์ อย่างไรก็ตามฉันไม่มีความรู้สึกที่ดีสำหรับรูปแบบไบนารีของไฟล์ ENVI Classic .roi ซึ่งประกอบไปด้วยการแลกเปลี่ยนข้อมูลจำนวนมากในกลุ่มของฉัน ไม่มีใครมีรหัสใด ๆ ที่อ่านหรือเขียนไฟล์เหล่านี้หรือมีความเข้าใจเกี่ยวกับวิธีการหนึ่งอาจไปเกี่ยวกับมัน มันค่อนข้างน่าเบื่อถ้าจะยิง ENVI 5 ทุกครั้งที่ฉันอยากจะไปๆมาๆ - ฉันควรจะแก้ปัญหาที่ต้นกำเนิดถ้าเป็นไปได้

4
จะปฏิเสธไฟล์ CSV 500 ไฟล์อย่างมีประสิทธิภาพและง่ายดายโดยใช้ QGIS อย่างไร
ฉันรู้ว่าคำถามของฉันคล้ายกับคำถามเก่า ๆ ในเว็บไซต์นี้ ฉันมีไฟล์ CSV (พิกัดทางภูมิศาสตร์) จำนวนมากที่จะนำเข้าสู่ qgis (แล้วแปลงเป็นไฟล์) และวิธีปกติไม่ใช่วิธีที่ดีที่สุดในการทำ (ยาวเกินไป) ฉันมีไฟล์ CSV เกือบ 500 ไฟล์ (พิกัด wgs84) และนี่คือสิ่งที่ฉันต้องการทำ: นำเข้าไฟล์ CSV ทั้งหมดในครั้งเดียวไปยัง QGIS ฉายภาพเหล่านั้น ส่งออกเป็นไฟล์ CSV (อีกครั้ง) แต่มีพิกัดต่างกัน (แปลงเป็น UTM33N) ฉันพยายามเข้าใจวิธีการใช้งานpython consoleแต่ฉันไม่ได้ไปที่ :( ทุกคนสามารถอธิบายให้ฉันทราบถึงวิธีการบรรลุเป้าหมายทีละขั้นตอนได้หรือไม่
11 qgis  python  pyqgis  export  csv 

1
การอ่านการแก้ไขและการเขียนพิกัดด้วย GDAL ในหลาม
ฉันพยายามเรียนรู้วิธีการประมวลผลภาพจากการรับรู้ระยะไกลโดยใช้การเชื่อมโยง Python GDAL และการถ่ายภาพจำนวนมาก เป็นครั้งแรกที่ฉันอ่านไฟล์ geotiff Landsat8 ทำการจัดการอย่างง่ายและเขียนผลลัพธ์ลงในไฟล์ใหม่ รหัสด้านล่างดูเหมือนว่าจะทำงานได้ดียกเว้นว่าแรสเตอร์ดั้งเดิมถูกทิ้งในไฟล์เอาต์พุตแทนที่จะเป็นแรสเตอร์ที่ได้รับการจัดการ ความคิดเห็นหรือข้อเสนอแนะใด ๆ ยินดีต้อนรับ แต่โดยเฉพาะอย่างยิ่งบันทึกเกี่ยวกับสาเหตุที่แรสเตอร์ที่จัดการไม่แสดงในผลลัพธ์ import os import gdal gdal.AllRegister() file = "c:\~\LC81980242015071LGN00.tiff" (fileRoot, fileExt) = os.path.splitext(file) outFileName = fileRoot + "_mod" + fileExt ds = gdal.Open(file) band = ds.GetRasterBand(1) arr = band.ReadAsArray() [cols, rows] = arr.shape arr_min = arr.Min() arr_max = …

3
การประมวลผลภาพโดยใช้ Python, GDAL และ Scikit-Image
ฉันกำลังดิ้นรนกับการประมวลผลและหวังว่าฉันจะสามารถแก้ไขได้ที่นี่ ฉันทำงานกับ Remote Sensing ที่ใช้กับการป่าไม้โดยเฉพาะการทำงานกับข้อมูล LiDAR แนวคิดคือการใช้ Scikit-image สำหรับการตรวจจับต้นไม้ด้านบน เนื่องจากฉันใหม่ใน Python ฉันถือว่าชัยชนะส่วนตัวที่ยอดเยี่ยมในการทำสิ่งต่อไปนี้: นำเข้า CHM (พร้อม matplotlib); เรียกใช้ตัวกรอง Gaussian (พร้อมแพ็คเกจ scikit-image); เรียกใช้ตัวกรอง maxima (พร้อมแพ็คเกจ scikit-image); รัน peak_local_max (พร้อมแพ็กเกจ scikit-image); แสดง CHM ​​ด้วย maxima ท้องถิ่น (พร้อม matplotlib); ตอนนี้ปัญหาของฉัน เมื่อฉันนำเข้าด้วย matplot รูปภาพจะสูญเสียพิกัดทางภูมิศาสตร์ ดังนั้นพิกัดที่ฉันมีจึงเป็นเพียงพิกัดรูปภาพพื้นฐาน (เช่น 250,312) สิ่งที่ฉันต้องการคือการรับค่าของพิกเซลภายใต้จุดสูงสุดในภาพ (จุดสีแดงในภาพ) ที่นี่ในฟอรัมฉันเห็นชายคนหนึ่งถามสิ่งเดียวกัน ( รับค่าพิกเซลของแรสเตอร์ GDAL ภายใต้จุด OGR …

2
การอ่านรูปทรงเรขาคณิตของ postgis ด้วยหุ่นดี
ฉันกำลังทำเวิร์กโฟลว์ขนาดเล็กในโน้ตบุ๊ก ipython ที่มี geopandas และ shapely ดึงข้อมูล geospatial จำนวนมากบางครั้งมาจาก shapefiles บางครั้งมาจาก postgis (ซึ่งมีการประมวลผลที่แพงกว่า) ตอนนี้ฉันก็ดึงตาราง postgis ไปเป็น python โดยใช้การsqlalchemyแปลงเรขาคณิตเป็น WKT ไปพร้อมกัน sql = """ SELECT ST_AsText(ST_Transform(the_geom,4326)) as newgeom,* FROM public.parcels2010_small limit 5; """ parcels = pd.read_sql(sql, engine) parcels +----+---------------------------------------------------+---------------------------------------------------+-----------+-------------+ | id | newgeom | the_geom | parcel_id | osm_node_id | +----+---------------------------------------------------+---------------------------------------------------+-----------+-------------+ …


2
วิธีสร้าง Shapely LineString จากสองจุด
หากมีสองจุดจากที่ฉันต้องการสร้างLineStringวัตถุตรง: from shapely.geometry import Point, LineString A = Point(0,0) B = Point(1,1) คู่มือหุ่นดีสำหรับLineStringรัฐ: ลำดับของPointอินสแตนซ์ไม่ใช่พารามิเตอร์ตัวสร้างที่ถูกต้อง A LineStringอธิบายโดยจุด แต่ไม่ประกอบด้วยอินสแตนซ์จุด ดังนั้นถ้าฉันมีสองจุดAและBมีวิธีที่สั้นกว่า / ดีกว่า / ง่ายกว่าในการสร้างเส้นABกว่าเดา "ดีที่สุด" ปัจจุบันของฉัน ... AB = LineString(tuple(A.coords) + tuple(B.coords)) ... ซึ่งดูค่อนข้างซับซ้อน มีวิธีที่ง่ายกว่านี้ไหม? ปรับปรุง ด้วย Shapely 1.3.2 ที่วางจำหน่ายวันนี้ข้อความข้างต้นจากคู่มือไม่ถูกต้องอีกต่อไป ดังนั้นจากนี้ไป AB = LineString([A, B]) ได้ผล !
11 python  shapely 

3
การจับคู่ฮิสโตแกรมโดยใช้ Python เพื่อปรับปรุงกระบวนการโมเสกของแรสเตอร์ซ้อนทับกันหลายอัน?
ฉันพยายามทำการจับคู่ฮิสโตแกรมด้วย Python เพื่อปรับปรุงกระบวนการโมเสกของแรสเตอร์ซ้อนทับหลาย ๆ อัน ฉันกำลังใช้รหัสของฉันในสิ่งที่พบได้ที่: http://www.idlcoyote.com/ip_tips/histomatch.html ในวันที่ฉันมีการจัดการเพื่อคลิปพื้นที่ที่ทับซ้อนกันของสอง rasters ที่อยู่ติดกันและแผ่อาร์เรย์ ดังนั้นฉันจึงมีอาร์เรย์ 1 มิติสองมิติที่มีความยาวเท่ากัน ฉันได้เขียนรหัสต่อไปนี้ตามที่พบในเว็บไซต์ด้านบน ในรหัสที่แสดงฉันได้แทนที่สองชุดข้อมูลที่มีขนาดเล็กมากสำหรับภาพ gd และ bd import matplotlib.pyplot as plt from scipy.interpolate import interp1d bins = range(0,100, 10) gd_hist = [1,2,3,4,5,4,3,2,1] bd_hist = [2,4,6,8,10,8,6,4,2] nPixels = len(gd_hist) # here we are creating the cumulative distribution frequency for the …

3
ข้อดีและข้อเสียของ Python Add-in กับ. NET Add-in กับ ArcGIS for Desktop คืออะไร?
ฉันพบในความช่วยเหลือของ ESRI .NET: หลาม แอปพลิเคชั่น ArcGIS Desktop ทั้งหมดมีภาษาสคริปต์ฝังตัวที่เรียกว่า Python ArcGIS หลายพื้นที่โดยเฉพาะอย่างยิ่งการประมวลผลทางภูมิศาสตร์สามารถเข้าถึงได้ผ่าน Python แอพพลิเคชั่นการเขียนโปรแกรมอินเทอร์เฟซ (API) ที่ง่ายขึ้นทำให้ง่ายต่อการเขียนและสร้างงานทั่วไปโดยอัตโนมัติ สคริปต์ Python นั้นใช้งานร่วมกันได้ง่ายและสามารถสร้างได้โดยไม่มีสภาพแวดล้อมการพัฒนาภายนอก มีโมดูล Python ของโดเมนสาธารณะที่หลากหลายซึ่งมุ่งเน้นที่สาขาต่าง ๆ เช่นวิทยาศาสตร์วิศวกรรมและคณิตศาสตร์ ด้วยจุดแข็งทั้งหมด Python จึงไม่เหมาะกับทุกงานการตั้งโปรแกรม แม้ว่าความครอบคลุมจะดีขึ้น แต่พื้นที่ทั้งหมดของ ArcGIS นั้นไม่ได้รับการเปิดเผยใน Python นอกจากนี้ประสบการณ์การแก้ไขและการดีบักใน Python นั้นไม่ได้ซับซ้อนหรือใช้งานง่ายเหมือนกับที่รวมอยู่ในสภาพแวดล้อมการพัฒนาเชิงพาณิชย์เช่น Visual Studioสุดท้ายคุณไม่สามารถฟังและตอบสนองต่อเหตุการณ์ ArcGIS ใช้อินเตอร์เฟซ COM หรือเสียบเข้ากับจุดต่อ COM หลายจุดของ ESRI โดยใช้ Python และใน ArcGIS Desktop ช่วย: ArcGIS …


1
จะบันทึกเซสชัน python ใน QGIS ได้อย่างไร
หลังจากรันสคริปต์จำนวนมากในคอนโซล python ของ QGIS ฉันมีพจนานุกรมและรายการมากกว่า 10 รายการและฉันต้องการสิ่งเหล่านี้สำหรับการวิเคราะห์เพิ่มเติม มีวิธีบันทึกเซสชัน python กับตัวแปรเหล่านี้ทั้งหมดหรือไม่ โดยทั่วไปแล้วคำถามของฉันคือฉันจะส่งออกตัวแปรของฉันจากคอนโซลงูเหลือมไปยังบางสิ่งได้อย่างไรเพื่อให้สามารถโหลดตัวแปรเหล่านั้นอีกครั้งในอนาคต ขอบคุณ
11 qgis  python  pyqgis 

1
ฉันจะรักษา GUI ที่ตอบสนองได้อย่างไรโดยใช้ QThread กับ PyQGIS
ฉันได้พัฒนาเครื่องมือการประมวลผลแบบแบตช์เป็นปลั๊กอินหลามสำหรับ QGIS 1.8 ฉันพบว่าในขณะที่เครื่องมือของฉันกำลังเรียกใช้ GUI จะไม่ตอบสนอง ภูมิปัญญาทั่วไปคืองานควรทำในเธรดผู้ปฏิบัติงานด้วยข้อมูลสถานะ / ความสมบูรณ์ส่งกลับไปยัง GUI เป็นสัญญาณ ฉันได้อ่านเอกสารริมตลิ่งแล้วและศึกษาที่มาของ doGeometry.py (การใช้งานจากftools ) การใช้แหล่งข้อมูลเหล่านี้ฉันพยายามสร้างการใช้งานอย่างง่ายเพื่อสำรวจฟังก์ชันการทำงานนี้ก่อนที่จะทำการเปลี่ยนแปลงกับฐานรหัส โครงสร้างโดยรวมเป็นรายการในเมนูปลั๊กอินที่มีการโต้ตอบกับปุ่มเริ่มและหยุด ปุ่มควบคุมชุดข้อความที่นับถึง 100 โดยส่งสัญญาณกลับไปที่ GUI สำหรับแต่ละหมายเลข GUI ได้รับสัญญาณแต่ละรายการและส่งสตริงที่มีหมายเลขทั้งบันทึกข้อความและชื่อหน้าต่าง รหัสของการใช้งานนี้อยู่ที่นี่: from PyQt4.QtCore import * from PyQt4.QtGui import * from qgis.core import * class ThreadTest: def __init__(self, iface): self.iface = iface def initGui(self): self.action = QAction( …

1
วิธีซ่อน / แสดง QGisVectorLayer จากรหัส Python
เมื่อสร้างเลเยอร์แล้วฉันจะซ่อน / แสดงมันได้อย่างไร? ฉันสามารถเปิด / ปิดการแสดงผลเลเยอร์เฉพาะโดยเลือกช่องทำเครื่องหมายผ่าน QGIS แต่ฉันต้องทำโดยทางโปรแกรมจากรหัสหลาม ฉันจะแสดง / ซ่อน (ไม่ลบ) ฉลากจากรหัสหลามได้อย่างไร ฉันกำลังมองหาสิ่งที่ชอบ: aLayer = self.addVectorLayer(uri.uri(), layerName, self.dbConn.getProviderName()) aLayer.Hide() .... aLayer.Show()

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