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

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

4
รับระดับความสูงที่ lat / long จากแรสเตอร์ด้วย python หรือไม่
ฉันสงสัยว่าใครมีประสบการณ์ในการรับข้อมูลระดับความสูงจากแรสเตอร์โดยไม่ต้องใช้ ArcGISแต่ควรรับข้อมูลเป็นงูหลามlistหรือdict? ฉันได้รับข้อมูล XY ของฉันเป็นรายการสิ่งอันดับ: xy34 =[perp_obj[j].CalcPnts(float(i.dist), orientation) for j in range (len(perp_obj))] ฉันต้องการวนรอบรายการหรือส่งผ่านไปยังฟังก์ชันหรือคลาสวิธีเพื่อให้ได้ระดับความสูงที่สอดคล้องกันสำหรับคู่ xy ฉันทำการค้นคว้าบางอย่างเกี่ยวกับหัวข้อและgdal API ฟังดูมีแนวโน้ม ใครสามารถแนะนำฉันเกี่ยวกับสิ่งต่าง ๆ ข้อผิดพลาดโค้ดตัวอย่างได้หรือไม่? GDAL ไม่ใช่ตัวเลือกเนื่องจากฉันไม่สามารถแก้ไขตัวแปรพา ธ ของระบบในเครื่องที่ฉันกำลังทำงานอยู่! ไม่มีใครรู้เกี่ยวกับวิธีการที่แตกต่างกันอย่างไร

2
การสร้างภาพแบบหลายส่วนตั้งแต่เริ่มต้น
ฉันต้องการสร้างภาพ multispectral จาก cero เพื่อทำการทดสอบบางอย่างกับมัน บางสิ่งที่ง่ายจริงๆเช่น 5 วงที่มีลักษณะเหมือนกันอย่างสมบูรณ์ด้วยเสียงเกลือและพริกไทยบนพวกเขาหรือค่าที่แตกต่างกันที่จุดศูนย์กลาง เห็นได้ชัดว่านี่จะเป็นสแต็กของเมทริกซ์ซึ่งเป็นอาร์เรย์หลายมิติซึ่งค่อนข้างตรงไปตรงมาเพื่อสร้าง ฉันต้องการประสบความสำเร็จในการใช้ python และ gdal แต่ gdal นั้นค่อนข้างลึกลับฉันไม่เข้าใจเลย ฉันต้องการสร้างไฟล์พิกัด มีใครช่วยฉันได้บ้าง พอยน์เตอร์หรือแบบฝึกหัด gdal บางอันอ่อนโยนมาก ขอบคุณทุกคน.
10 python  raster  gdal  imagery 

2
จะส่งคืนส่วนประกอบที่อยู่ส่วนบุคคล (เมืองรัฐ ฯลฯ ) จาก Geocoder GeoPy ได้อย่างไร
ฉันใช้ GeoPy เพื่อระบุที่อยู่ทางภูมิศาสตร์เป็น lat, lng ฉันต้องการแยกส่วนประกอบที่อยู่ที่แยกรายการ (ถนนเมืองรัฐรหัสไปรษณีย์) สำหรับแต่ละที่อยู่ GeoPy ส่งคืนสตริงด้วยที่อยู่ - แต่ฉันไม่สามารถหาวิธีที่เชื่อถือได้ในการแยกแต่ละองค์ประกอบ ตัวอย่างเช่น: {street: '123 Main Street', city: 'Los Angeles', state: 'CA', zip: 90034, country: 'USA'} API การเข้ารหัสทางภูมิศาสตร์ของ Google จะส่งคืนองค์ประกอบแต่ละรายการเหล่านี้ ... มีวิธีรับสิ่งเหล่านี้จาก GeoPy หรือไม่ (หรือเครื่องมือการเข้ารหัสภูมิศาสตร์อื่น)

3
วัตถุ 'NoneType' ไม่มีแอตทริบิวต์
ฉันยังใหม่กับการเขียนโปรแกรมเชิงพื้นที่ของหลาม ฉันรันสคริปต์ต่อไปนี้และได้รับข้อความแสดงข้อผิดพลาดที่เกี่ยวข้อง >>> import osgeo >>> import osgeo.ogr >>> shapefile = osgeo.ogr.Open("tl_2009_us_state.shp") >>> numLayers = shapefile.GetLayerCount() Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> numLayers = shapefile.GetLayerCount() AttributeError: 'NoneType' object has no attribute 'GetLayerCount'
10 python  gdal 

2
รูปหลายเหลี่ยมรวมกันเพื่อตอบสนองความต้องการความเป็นส่วนตัว
ฉันมีคลาสคุณลักษณะเฉพาะที่แสดงถึงที่ตั้งสำนักงานของนายจ้างทั้งหมดในอุตสาหกรรมหนึ่ง ๆ คลาสคุณลักษณะนี้มีคุณลักษณะสำหรับจัดเก็บจำนวนพนักงานที่ทำงานในแต่ละสำนักงาน มีคนขอใช้ข้อมูลนี้เข้าร่วมเชิงพื้นที่กับหน่วยทางภูมิศาสตร์ที่เล็กที่สุดเท่าที่จะเป็นไปได้ - บล็อกการสำรวจสำมะโนประชากรในกรณีนี้ อย่างไรก็ตามข้อตกลงความเป็นส่วนตัวป้องกันการเปิดเผยข้อมูลตามที่เป็นอยู่ แต่จะต้องระงับเพื่อให้ตรงกับเกณฑ์สองประการ: รูปหลายเหลี่ยมใด ๆ จะต้องมีนายจ้างอย่างน้อย 3 คน (คะแนน); ไม่เกิน 80% ของการจ้างงานทั้งหมดภายในรูปหลายเหลี่ยมอาจเป็นนายจ้างคนเดียว ฉันประสบความสำเร็จในการเขียนสคริปต์ที่เชื่อมโยงประเด็นไปยังบล็อกการสำรวจสำมะโนประชากรเชิงพื้นที่โดยรักษาผลรวมและการจ้างงานสูงสุดในแต่ละ แต่ละรายการที่ไม่ตรงตามเกณฑ์การปราบปรามจะถูกตั้งค่าสถานะ (รูปหลายเหลี่ยมที่ไม่มีคะแนนจะไม่ถูกตั้งค่าสถานะเนื่องจากไม่มีข้อมูลที่จะระงับ) จากนั้นฉันจะตรวจสอบแต่ละกลุ่มบล็อกเพื่อดูว่ามีบล็อกภายในที่ถูกตั้งค่าสถานะอยู่หรือไม่ กลุ่มบล็อกที่มีเฉพาะบล็อกที่ไม่ติดธงจะถูกแทนที่ด้วยบล็อก คลาสคุณลักษณะที่ได้จะถูกตรวจสอบกับเกณฑ์การปราบปรามเพื่อตรวจสอบว่ากลุ่มบล็อกได้ระงับข้อมูลอย่างเพียงพอหรือไม่ กระบวนการเดียวกันนี้ทำซ้ำสำหรับ Tracts โดยปล่อยให้ฉันมีชุดข้อมูลที่ประกอบไปด้วย Tracts (บางคนถูกตั้งค่าสถานะและบางคนไม่ได้) กลุ่มบล็อกและบล็อก (ยกเลิกการตั้งค่าสถานะทั้งหมด) อย่างไรก็ตามความก้าวหน้าครั้งต่อไปในลำดับชั้นทางภูมิศาสตร์เป็นเขตที่ไม่ได้ใช้กับบุคคลที่ขอข้อมูลนี้ จากนั้นคำถามของฉันคือสิ่งนี้: มีวิธีการใดที่ยอมรับกันโดยทั่วไปในการรวมรูปหลายเหลี่ยมเป็นกลุ่มให้ได้มากที่สุดเพื่อให้เป็นไปตามเกณฑ์ขั้นต่ำทั้งหมดหรือไม่ นี่คือกฎบางอย่างที่ฉันต้องการนำไปใช้กับการรวม: เมื่อใดก็ตามที่เป็นไปได้ผืนที่ถูกตั้งค่าสถานะควรรวมกับทางเดินที่ถูกตั้งค่าสถานะอื่นเท่านั้น สำหรับทางเดินที่ถูกตั้งค่าสถานะซึ่งไม่ต่อเนื่องกับคนอื่น ๆ (หรือกลุ่มแยกที่ยังไม่ตรงตามเกณฑ์) พวกเขาสามารถเข้าร่วมกับผืนที่ตรงกับเกณฑ์แล้วแม้ว่าอาจจะมีผืนที่ไม่มีนายจ้างในระหว่างพวกเขาที่จะ จะต้องรวม ฉันต้องการให้เขตแดนของเขตนั้นสมบูรณ์เว้นแต่จะเป็นไปไม่ได้อย่างแน่นอน (และฉันคาดว่าจะทำสิ่งนี้ได้โดยการแยกคุณสมบัติอินพุตเข้าสู่เขตของตนก่อนดำเนินการ) การแก้ปัญหาจะต้องอยู่ใน Python ด้วยการใช้เครื่องมือ ArcGIS หรือไลบรารี Python โอเพนซอร์ส เป็นการดีที่ใครบางคนสามารถชี้ให้ฉันไปที่วิธีการที่มีอยู่ของการใช้การรวมตัวนี้ …


2
แปลงตาราง PostGIS เป็น Shapefile ใน Python หรือไม่
ฉันต้องการแปลงตาราง PostGIS เป็น shapefile (โดยไม่ต้องใช้ pgsql2shp) ในการสร้างรูปทรงเรขาคณิตใน shapefile ฉันต้องให้ Xmin, Ymin และ Xmax, Ymax และรูปทรงเรขาคณิตที่ฉันมีในตาราง PostGIS ของฉันเป็นรูปทรงที่ไม่สม่ำเสมอ (ฉันสามารถรับภายนอกโดยใช้กล่องขอบ แต่จะรวม บางพื้นที่พิเศษมากกว่าพื้นที่ ineterest ของฉัน) มีวิธีใดบ้างที่ฉันสามารถทำงานให้สำเร็จได้? ฉันต้องการทำสิ่งที่เขียนโปรแกรมและใช้ Python
10 python  postgis 

1
Arcobjects ใน Python: กำหนดอินเตอร์เฟสให้กับวัตถุที่มีรูปทรงเรขาคณิต (รูปร่าง)
ฉันพยายามใช้ ArcObject ใน Python ฉันมีปัญหากับการกำหนดอินเทอร์เฟซ (เช่น IZ.InterpolateZsBetween) ให้กับวัตถุของฉันด้วยข้อมูลเรขาคณิตรหัสคือ: from Comtypes.client import CreateObject, GetModule import arcgisscripting gp = arcgisscripting.create(9.3) gp.setproduct("ArcInfo") esriSystem = GetModule("C:/Program Files (x86)/ArcGIS/com/esriSystem.olb") esriGeometry = GetModule("C:/Program Files (x86)/ArcGIS/com/esriGeometry.olb") esriDataSourcesGDB = GetModule("C:/Program Files (x86)/ArcGIS/com/esriDataSourcesGDB.olb") esriGeoDatabase = GetModule("C:/Program Files (x86)/ArcGIS/com/esriGeoDatabase.olb") sPath ="c:/temp/test.gdb" pWSF = CreateObject(esriDataSourcesGDB.FileGDBWorkspaceFactory,\ interface=esriGeoDatabase.IWorkspaceFactory) pWS = pWSF.OpenFromFile(sPath, 0) pFWS …

1
ช่วยด้วยรูปหลายเหลี่ยม PostGIS รูปทรงเรขาคณิต - วงแหวนที่ไม่ปิด
ฉันได้รับสำเนาหนังสือสุดยอด 'Python Geospatial Development' โดย Erik Westra ( ลิงก์ Amazon ) และฉันกำลังทำงานอยู่ ปัจจุบันสอนให้ฉันโหลดข้อมูลชายฝั่ง GSHHS จากรูปร่างไฟล์ลงในฐานข้อมูล PostGIS เพื่อเตรียมสร้างแอปพลิเคชันเว็บเชิงพื้นที่ ปัญหาของฉันคือ: เมื่อฉันพยายามนำเข้าข้อมูล GSHHS ไปยัง PostGIS นั้นจะถูกปฏิเสธเนื่องจากรูปหลายเหลี่ยมชายฝั่งไม่ได้รับการพิจารณาว่า 'ถูกต้อง' โดยเฉพาะฉันได้รับข้อความแสดงข้อผิดพลาดที่อธิบายถึงรูปหลายเหลี่ยม (แต่ไม่ทั้งหมด) ของแนวชายฝั่งว่าเป็น 'วงไม่ปิด' ฉันเข้าใจว่าข้อผิดพลาดนี้พยายามบอกฉันว่าจุดแรกและจุดสุดท้ายของรูปหลายเหลี่ยมนั้นไม่เหมือนกัน อย่างไรก็ตามสิ่งนี้ไม่เป็นความจริง ฉันได้ตรวจสอบการเป็นตัวแทนของ WKT ของรูปหลายเหลี่ยมหลายอันและถูกต้องแล้ว แน่นอนพวกเขาเริ่มต้นและสิ้นสุดด้วยการประสานงานเดียวกัน รูปหลายเหลี่ยมจะถูกแยกออกจาก shapefiles โดยใช้ไลบรารี OGR และส่งออกแต่ละรูปหลายเหลี่ยมไปยัง WKT ฉันลองสร้างรูปหลายเหลี่ยมใหม่ผ่าน Shapely และทดลองกับ WKB แต่ก็ไม่มีประโยชน์ ฉันได้รับสามารถที่จะโหลดข้อมูลเดียวกันใน PostGIS เป็นตาราง MULTIPOLYGON โดยใช้รถตักดิน …
10 python  postgis  ogr  wkt 

3
การแปลงพิกัด X, Y เป็น lat / long โดยใช้ pyproj และ Proj.4 จะคืนค่าพิกัดที่ไม่ถูกต้อง
ฉันกำลังเขียนสคริปต์หลามที่อ่านไฟล์ XML หลายไฟล์ที่มีพิกัด x และ y และรวมพวกมันทั้งหมดไว้ในไฟล์ csv ไฟล์เดียว ละติจูดและลองจิจูดเป็นฟิลด์บังคับใน csv แต่ฉันมีปัญหาในการแปลงพิกัด x, y ใน Ohio North State Plane usFt เป็น WGS84 >>> p = Proj(r'+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defs') #Nad83 State Plane Ohio North US Feet Proj object using parameters >>> p(739400.91,2339327.3,inverse=True) (-80.138057868777224, …


2
จุด (ของการดึงแสง) ภายในรูปหลายเหลี่ยมโดยใช้ ogr และ Python
ขณะนี้ฉันกำลังทำงานในโครงการที่ฉันต้องการสร้างเครือข่ายทอพอโลยีจากคุณสมบัติทางเรขาคณิตที่ฉันพบในรูปร่างไฟล์ จนถึงตอนนี้การใช้โครงการโอเพ่นซอร์สของ Ben Reillyฉันได้ทำการแปลง linestrings เป็น edge networkx รวมถึงการตรวจสอบคุณสมบัติปิด (linestrings อื่นพูด) และเพิ่มไปยังจุดที่ใกล้ที่สุด แต่มันก็ใช้ได้สำหรับไฟล์รูปร่างเดียว อย่างไรก็ตามตอนนี้ฉันต้องเชื่อมต่อฟีเจอร์ต่าง ๆ จากรูปร่างที่แตกต่างกันเข้ากับกราฟ networkx ขนาดใหญ่ ตัวอย่างเช่นถ้าจุดอยู่ภายในรูปหลายเหลี่ยมฉันจะเชื่อมต่อมัน (โดยเชื่อมต่อฉันหมายถึงเพิ่มขอบเครือข่าย - add_edge (g.GetPoint (1), g.GetPoint (2)) กับจุดในรูปร่างไฟล์ถัดไปที่ ยังอยู่ในรูปหลายเหลี่ยมที่ใช้แอตทริบิวต์ที่คล้ายกัน (พูด ID) โปรดทราบว่ารูปหลายเหลี่ยมในส่วนต่าง ๆ จะใช้รหัสเดียวกันเท่านั้นและไม่ใช่พิกัดจุดที่อยู่ภายในรูปหลายเหลี่ยมนั้นไม่ได้ใช้พิกัดเดียวกัน วิธีแก้ไขปัญหานี้ของฉันคือการระบุจุดที่อยู่ในรูปหลายเหลี่ยมเก็บไว้ค้นหาจุดใน shapefile ถัดไปที่อยู่ในรูปหลายเหลี่ยมที่มี id เดียวกันและเพิ่ม networkx edge ระหว่างพวกเขา จะหาได้อย่างไรว่าจุดนั้นอยู่ในรูปหลายเหลี่ยมหรือไม่? มีอัลกอริทึมที่รู้จักกันดี: อัลกอริทึมRayCastingที่ทำเช่นนั้น นี่คือจุดที่ฉันติดอยู่จริงเพราะเพื่อที่จะใช้อัลกอริทึมที่ฉันต้องการพิกัดของรูปหลายเหลี่ยมและไม่ทราบวิธีการเข้าถึงพวกเขาในขณะนี้แม้หลังจาก skimming ผ่านเอกสารของเรขาคณิตของ OGR ดังนั้นคำถามที่ฉันถามคือการเข้าถึงจุดรูปหลายเหลี่ยมหรือพิกัดหรือมีวิธีที่ง่ายกว่าในการตรวจสอบว่าจุดตกอยู่ในรูปหลายเหลี่ยม? การใช้ …

5
อัพเดตตาราง attributefile หนึ่งตารางด้วยค่าจากตาราง dbf อื่น
ฉันพยายามอธิบายที่นี่สิ่งที่ฉันพยายามทำ: ฉันมีหนึ่ง Shapefile และหนึ่งตาราง dbf อิสระที่มีเขตข้อมูลเดียวกัน ในตาราง dbf ฟิลด์ทั้งหมดจะถูกเติมข้อมูล แต่ในตารางแอ็ตทริบิวต์ shapefile เพียงอันเดียวให้ตั้งชื่อมันว่า "OneField" สิ่งที่ฉันต้องการจะทำคือการตรวจสอบว่าค่าจาก "OneField" (Shapefile) เหมือนกันกับค่าใน "OneField" (ตาราง dbf) และถ้าเป็นเช่นนั้นเพื่อเติมฟิลด์ว่างที่เหลืออยู่ในตารางแอตทริบิวต์ shapefile กับคน ในตาราง dbf อิสระ ในขณะนี้ฉันพยายามจะคัดลอกค่าจากตาราง dbf อิสระไปยังตารางคุณลักษณะ shapefile แต่ฉันติดอยู่ (เมื่อฉันเรียกใช้รหัสนี้ฉันได้รับข้อความว่า pythonwin หยุดทำงานและไม่มีอะไรเกิดขึ้นกับตาราง) คุณช่วยมือหน่อยได้ไหม? นี่คือรหัส: import arcpy table = "link/to/table.dbf" fc = "link/to/shapefile.shp" # Create a search cursor rowsTable …
10 python  data  shapefile 

3
สร้างปุ่มใน ArcMap เพื่อรันโปรแกรม Python หรือไม่?
ฉันมีสคริปต์ที่ฉันต้องการเรียกใช้ภายใน ArcMap เมื่อมีการคลิกปุ่มในแถบเครื่องมือและจนถึงตอนนี้ฉันสามารถทำให้สคริปต์เป็นเครื่องมือสคริปต์ได้เท่านั้น ฉันต้องการให้มันรันเป็นคำสั่งไม่ใช่เครื่องมือการประมวลผลทางภูมิศาสตร์ การเรียกใช้เป็นเครื่องมือประมวลผลเชิงภูมิศาสตร์ใช้เวลานานกว่าเมื่อเรียกใช้รหัสเดียวกันจากหน้าต่างบรรทัดคำสั่ง ฉันเพิ่งเริ่มค้นหา ArcObjects แต่ฉันต้องการเริ่มใช้งานหากเป็นสิ่งที่ฉันจะต้องใช้ หากใครมีรหัสตัวอย่างหรือแหล่งข้อมูลสำหรับการสร้างปุ่มมันจะยอดเยี่ยม

1
ติดตั้ง QGIS ไปยังสภาพแวดล้อมเสมือนจริงหรือไม่?
ฉันต้องการติดตั้ง QGIS ฉันใช้ระบบที่ใช้ค่าเริ่มต้นของ Python 2.5x และฉันดาวน์โหลด python 3.7x กับ homebrew ฉันสร้างสภาพแวดล้อมเสมือนจริงด้วยรหัสนี้ brew install pyenv brew install pyenv-virtualenv exec $SHELL eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" pyenv activate my-virtualenv ฉันจะติดตั้งหลาม 3.6 และโมดูลplotly, numpy, pygments, psycopg2, และowslibPyYaml แต่ละคนถูก จำกัด ให้อยู่ในสภาพแวดล้อมเสมือน ฉันจะติดตั้งแพ็กเกจได้อย่างไรเพื่อให้โหลดและใช้ Python จากสภาพแวดล้อมของอนุภาคเท่านั้น

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