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

NumPy เป็นโมดูล Python ที่เพิ่มการรองรับอาร์เรย์และเมทริกซ์ขนาดใหญ่หลายมิติพร้อมกับไลบรารีของฟังก์ชันทางคณิตศาสตร์ระดับสูงขนาดใหญ่เพื่อดำเนินการกับอาร์เรย์เหล่านี้

5
การเขียนอาร์เรย์ numpy ไปยังไฟล์ raster
ฉันใหม่กับ GIS ฉันมีรหัสบางอย่างที่แปลงภาพอินฟราเรดของดาวอังคารเป็นแผนที่ความเฉื่อยทางความร้อนซึ่งจะถูกเก็บไว้เป็นอาร์เรย์แบบสองมิติ ฉันบันทึกแผนที่เหล่านี้เป็นไฟล์ hdf5 แล้ว แต่ฉันต้องการบันทึกเป็นภาพแรสเตอร์จริงๆเพื่อให้สามารถประมวลผลได้ใน QGIS ฉันผ่านการค้นหาหลายครั้งเพื่อค้นหาวิธีการทำ แต่ไม่มีโชค ฉันได้ลองทำตามคำแนะนำในบทช่วยสอนที่http://www.gis.usu.edu/~chrisg/python/แต่ไฟล์ที่ฉันสร้างโดยใช้รหัสตัวอย่างของเขาเปิดเป็นกล่องสีเทาธรรมดาเมื่อฉันนำเข้า QGIS ฉันรู้สึกว่าถ้าใครบางคนสามารถแนะนำขั้นตอนที่ง่ายที่สุดเท่าที่เป็นไปได้สำหรับตัวอย่างที่เรียบง่ายของสิ่งที่ฉันต้องการจะทำแล้วฉันอาจจะสามารถก้าวหน้าได้บ้าง ฉันมี QGIS และ GDAL ฉันมีความสุขมากที่ได้ติดตั้งเฟรมเวิร์กอื่น ๆ ที่ทุกคนสามารถแนะนำได้ ฉันใช้ Mac OS 10.7 ดังนั้นถ้าเช่นฉันมีอาร์เรย์ของความเฉื่อยความร้อนที่ดูเหมือน: TI = ( (0.1, 0.2, 0.3, 0.4), (0.2, 0.3, 0.4, 0.5), (0.3, 0.4, 0.5, 0.6), (0.4, 0.5, 0.6, 0.7) ) และสำหรับแต่ละพิกเซลฉันมีละติจูดและลองจิจูด: lat = ( (10.0, …
30 python  raster  gdal  numpy 

5
โหลดแรสเตอร์ทั้งหมดลงในอาร์เรย์ numpy แล้วหรือยัง?
ฉันได้รับการพยายามที่จะตรวจสอบตัวกรองของฉันในแรสเตอร์ DEM สำหรับการรับรู้รูปแบบและมันมักจะมีผลในการหายไปแถวสุดท้ายและคอลัมน์ (like..20) ฉันลองห้องสมุด PIL แล้วโหลดภาพ จากนั้นด้วย numpy ผลลัพธ์เหมือนกัน ฉันคิดว่ามีบางอย่างผิดปกติกับลูปของฉันเมื่อตรวจสอบค่าในอาร์เรย์ (แค่เลือกพิกเซลด้วย Identification ใน ArcCatalog) ฉันรู้ว่าค่าพิกเซลไม่ได้ถูกโหลดลงในอาร์เรย์ ดังนั้นเพียงแค่เปิดใส่เข้าไปในอาร์เรย์และบันทึกภาพจากอาร์เรย์: a=numpy.array(Image.open(inraster)) #raster is .tif Float32, size 561x253 newIm=Image.new(Im.mode, Im.size) Image.fromarray(a).save(outraster) ผลลัพธ์ในการตัดแถวและคอลัมน์สุดท้ายออกไป ขออภัยไม่สามารถโพสต์ภาพได้ ทุกคนสามารถช่วยให้เข้าใจทำไม และให้คำแนะนำวิธีแก้ปัญหาบางอย่าง? แก้ไข: ดังนั้นฉันจึงประสบความสำเร็จในการโหลดแรสเตอร์ขนาดเล็กลงในอาร์เรย์ที่มีค่ามากด้วยความช่วยเหลือของผู้ชาย แต่เมื่อมีภาพที่ใหญ่ขึ้นฉันเริ่มได้รับข้อผิดพลาด ฉันคิดว่ามันเป็นเรื่องเกี่ยวกับข้อ จำกัด ของ numpy array ดังนั้น array จะถูกเปลี่ยนรูปร่างโดยอัตโนมัติหรือ smth เช่นนั้น ... ดังนั้นอดีต: Traceback (most recent call …

1
การจำลองผลลัพธ์ของ gdalwarp โดยใช้การผูก gdal Python
ฉันพยายามที่จะใหม่ / โครงการ resample กับ GDAL ผูกหลาม gdalwarpแต่กำลังได้รับผลลัพธ์ที่แตกต่างกันเล็กน้อยเมื่อเทียบกับผู้ที่มาจากยูทิลิตี้บรรทัดคำสั่ง ดูการอัปเดตด้านล่างสำหรับตัวอย่างที่สั้นกว่า สคริปต์นี้แสดงให้เห็นถึงวิธีการหลาม: from osgeo import osr, gdal import numpy def reproject_point(point, srs, target_srs): ''' Reproject a pair of coordinates from one spatial reference system to another. ''' transform = osr.CoordinateTransformation(srs, target_srs) (x, y, z) = transform.TransformPoint(*point) return (x, y) def reproject_bbox(top_left, bottom_right, …
20 python  gdal  gdalwarp  numpy 

1
ฉันจะใช้อาร์เรย์ NumPy เพื่อเพิ่มประสิทธิภาพการประมวลผลข้อมูลขนาดใหญ่ได้อย่างไร
ฉันสนใจที่จะเรียนรู้วิธีการใช้อาร์เรย์ NumPy เพื่อเพิ่มประสิทธิภาพการประมวลผลทางภูมิศาสตร์ งานส่วนใหญ่ของฉันเกี่ยวข้องกับ "ข้อมูลขนาดใหญ่" ซึ่งการประมวลผลทางภูมิศาสตร์มักใช้เวลาหลายวันเพื่อทำงานบางอย่างให้สำเร็จ จำเป็นต้องพูดฉันสนใจมากในการเพิ่มประสิทธิภาพการปฏิบัติเหล่านี้ ArcGIS 10.1 มีฟังก์ชั่น NumPy จำนวนมากที่สามารถเข้าถึงได้ผ่านทาง arcpy รวมไปถึง: NumPyArrayToFeatureClass (arcpy.da) RasterToNumPyArray (arcpy) TableToNumPyArray (arcpy.da) ตัวอย่างเช่นสมมติว่าฉันต้องการเพิ่มประสิทธิภาพการประมวลผลเวิร์กโฟลว์เข้มข้นต่อไปนี้โดยใช้อาร์เรย์ NumPy: แนวคิดทั่วไปที่นี่คือมีจุดจำนวนมากที่ใช้เวกเตอร์ที่เคลื่อนที่ผ่านทั้งการดำเนินการตามเวกเตอร์และแรสเตอร์ทำให้เกิดชุดข้อมูลแรสเตอร์เลขฐานสองจำนวนเต็ม ฉันจะรวมอาร์เรย์ NumPy เพื่อเพิ่มประสิทธิภาพเวิร์กโฟลว์ประเภทนี้ได้อย่างไร

3
การแปลงไฟล์ LAS ไปเป็นอาร์เรย์ที่ไม่มีค่า?
ฉันเริ่มเรียนรู้วิธีจัดการข้อมูล LAS ในหลามและต้องการดูว่าคนอื่นจัดการไฟล์ LAS อย่างไร ฉันต้องการอ่านคะแนน (ฉันใช้อาร์เรย์ numpy) และกรองคลาสที่ 1 และ 2 (ไม่จัดประเภทและกราวด์) ไปยังอาร์เรย์ที่แยกต่างหาก ฉันมีรหัสต่อไปนี้ แต่ดูเหมือนจะไม่สามารถรับคะแนนที่กรองได้ # Import modules from liblas import file import numpy as np if __name__=="__main__": '''Read LAS file and create an array to hold X, Y, Z values''' # Get file las_file = r"E:\Testing\ground_filtered.las" # Read …
15 python  lidar  numpy  array  liblas 

1
รับค่าพิกเซลที่จุดเดียวโดยใช้ rasterio
ในการรับค่าพิกเซลเพียงจุดเดียวใน raster โดยใช้ rasterio มีตัวอย่างอยู่ที่นี่: https://github.com/mapbox/rasterio/pull/275 อย่างไรก็ตามมี API โดยตรงภายใน rasterio (ไม่ใช่ cli) ซึ่งสามารถใช้เพื่อแยกค่าที่จุดเดียวใน raster หรือไม่? - แก้ไข with rasterio.drivers(): # Read raster bands directly to Numpy arrays. # with rasterio.open('C:\\Users\\rit\\38ERP.tif') as src: x = (src.bounds.left + src.bounds.right) / 2.0 y = (src.bounds.bottom + src.bounds.top) / 2.0 vals = src.sample((x, y)) …
14 python  numpy  rasterio 

2
รักษาการอ้างอิงเชิงพื้นที่โดยใช้ arcpy.RasterToNumPyArray หรือไม่
ฉันใช้ ArcGIS 10.1 และต้องการสร้างแรสเตอร์ใหม่โดยใช้แรสเตอร์สองรูปแบบมาก่อน RasterToNumPyArrayมีตัวอย่างที่ดีที่ฉันต้องการที่จะปรับตัว import arcpy import numpy myArray = arcpy.RasterToNumPyArray('C:/data/inRaster') myArraySum = myArray.sum(1) myArraySum.shape = (myArray.shape[0],1) myArrayPerc = (myArray * 1.0)/ myArraySum newRaster = arcpy.NumPyArrayToRaster(myArrayPerc) newRaster.save("C:/output/fgdb.gdb/PercentRaster") ปัญหาคือมันแถบการอ้างอิงเชิงพื้นที่และขนาดของเซลล์ ฉันคิดว่ามันต้องทำ arcpy.env แต่ฉันจะตั้งพวกมันตามอินพุตแรสเตอร์ได้อย่างไร ฉันไม่สามารถคิดออก รับคำตอบของลุคนี่คือวิธีแก้ปัญหาเบื้องต้นของฉัน โซลูชันทั้งสองของลุคตั้งค่าการอ้างอิงขอบเขตและขนาดเซลล์อย่างถูกต้อง แต่วิธีแรกไม่ได้เก็บข้อมูลในอาเรย์อย่างถูกต้องและเอาท์พุทแรสเตอร์เต็มไปด้วยข้อมูลทั้งหมด วิธีที่สองของเขาใช้งานได้เป็นส่วนใหญ่ แต่ที่ฉันมีพื้นที่ขนาดใหญ่ของโนดาต้ามันเต็มไปด้วยศูนย์บล็อกและ 255s สิ่งนี้อาจเกี่ยวข้องกับวิธีที่ฉันจัดการเซลล์โนดาต้าและฉันก็ค่อนข้างแน่ใจว่าฉันกำลังทำมันอย่างไร (ควรเป็น Q อีกอันหนึ่ง) ฉันรวมภาพสิ่งที่ฉันพูดถึง #Setting the raster properties directly import …

3
ไวยากรณ์เครื่องคิดเลข gdal_calc แรสเตอร์สำหรับผู้ประกอบการตรรกะและฟังก์ชั่นอื่น ๆ
ในเอกสาร gdal_calcแต่มันคือคำสั่งเครื่องคิดเลขบรรทัดแรสเตอร์มีไวยากรณ์ numpy ต่อมามีตัวอย่างบางส่วนที่หนึ่งในนั้นคือ gdal_calc.py -A input.tif --outfile = result.tif --calc = "A * (A> 0)" --NoDataValue = 0 - หมายถึงการตั้งค่าศูนย์และด้านล่างเป็นโมฆะ น่าเสียดายที่ไม่มีตัวอย่างเกี่ยวกับตัวดำเนินการเชิงตรรกะเช่น: --calc = "A * (A> 0 และ A> B)" - หมายถึงการรักษาถ้า A ที่ใหญ่กว่าศูนย์และใหญ่กว่า B และตั้งค่าที่เหลือเป็นโมฆะ จากฟังก์ชั่นลอจิก Numpy / Scipyฉันคาดว่าจะเขียนตัวดำเนินการเชิงตรรกะเป็น: --calc = "A * logical_and (A> 0 A> B)" …
13 python  gdal  numpy  gdal-calc 

2
การดาวน์โหลดข้อมูลแรสเตอร์สู่ python จาก postgis โดยใช้ psycopg2
ฉันมีข้อมูลแบบแรสเตอร์ในตาราง postgres ที่ฉันต้องการใช้เป็น python ในรูปแบบ numpy ฉันใช้ psycopg2 เพื่อเชื่อมต่อกับฐานข้อมูล ฉันสามารถดาวน์โหลดข้อมูล แต่กลับมาเป็นสตริง (อาจเป็นเลขฐานสองต่อเนื่อง) ไม่มีใครรู้วิธีการใช้สายนี้และแปลงเป็นอาร์เรย์ numpy? ฉันสำรวจตัวเลือกอื่น ๆ เพื่อดาวน์โหลดแรสเตอร์เช่นใช้ st_astiff และเข้ารหัสเพื่อดาวน์โหลดไฟล์ hex และใช้ xxd แต่มันไม่ทำงาน ฉันยังคงได้รับข้อผิดพลาด 'rt_raster_to_gdal: ไม่สามารถโหลดไดรเวอร์ GDAL เอาต์พุต' และฉันไม่ได้รับอนุญาตให้ตั้งค่าตัวแปรสภาพแวดล้อมเพื่อให้สามารถเปิดไดรเวอร์ได้ TL, DR: ต้องการนำเข้าข้อมูลแรสเตอร์เข้าสู่อาร์เรย์ numpy (โดยใช้ python)

3
ชุดข้อมูล Gdal.ReadAsArray () ขัดข้อง Python
ฉันใช้ Python 2.6.5 (32 บิต) กับ Numpy 1.3 และ Gdal 1.9.1 ติดตั้งบน Windows 7 64 บิต ฉันพยายามอ่านชุดข้อมูลแรสเตอร์ 800 MB Imagine (.img) ในอาร์เรย์ Numpy เพื่อทำพีชคณิตแบบแรสเตอร์ แต่ทันทีที่ฉันเรียกใช้รหัสต่อไปนี้ Python.exe จึงล้มเหลว from osgeo import gdal g = gdal.Open(r'path\to\dataset', gdal.GA_Readonly) b = g.GetRasterBand(1) data = b.ReadAsArray() Python.exe ขัดข้องขณะb.ReadAsArray()โทร ฉันได้ทำการค้นหาโดย Google และพบบทความจาก Gdal 1.6 ที่กล่าวถึงปัญหานี้กับ Windows …
12 gdal  numpy  python-2.6  array 

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 = …

1
PySAL แบ่งตามธรรมชาติจากแถว Numpy
ฉันกำลังพยายามดึงค่าตัวแบ่งตามธรรมชาติจากแรสเตอร์ด้วย Python กระบวนการที่ต้องการไป: วัตถุ Arcpyไปยัง NumPy Array (โดยใช้RasterToNumPyArray ) กับค่าการแบ่งตามธรรมชาติ (ใช้ฟังก์ชัน PySAL Natural Breaks ) import arcpy, pysal from pysal.esda.mapclassify import Natural_Breaks as nb # code to create greenIndex arcpy Raster object here greenArray = arcpy.RasterToNumPyArray(greenIndex) breaks = nb(greenArray,k=2,initial=20) รหัสนี้ส่งคืนข้อผิดพลาด "ValueError: matrix ต้องเป็น 2 มิติ" เท่าที่ฉันรู้ greenArray เป็นอาร์เรย์ 2 มิติ

2
รับพิกัดและค่าพิกเซลที่สอดคล้องกันจาก GeoTiff โดยใช้ python gdal และบันทึกเป็นอาร์เรย์แบบ numpy
ฉันจะได้รับพิกัดที่ฉายรวมถึงค่าพิกเซลจริงที่พิกัดเหล่านั้นจากไฟล์ GeoTiff จากนั้นบันทึกลงในอาร์เรย์แบบ numpy ได้อย่างไร ฉันมีไฟล์ arsenci020l.tif และพิกัดอยู่ในหน่วยเมตร ด้านล่างคือผลลัพธ์ย่อของ gdalinfo ที่ฉันวิ่งไป ~$ gdalinfo arsenci020l.tif Driver: GTiff/GeoTIFF Files: arsenci020l.tif arsenci020l.tfw Size is 10366, 7273 Coordinate System is: PROJCS["Lambert Azimuthal Equal Area projection with arbitrary plane grid; projection center 100.0 degrees W, 45.0 degrees N", GEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], …

3
จะทำให้ QGIS เล่นด้วยนุ่น (Windows) ได้อย่างไร?
มีใครบ้างที่ประสบความสำเร็จในการทำให้แพนด้าทำงานกับการติดตั้ง Python ของ QGIS บน Windows? ฉันใช้ตัวติดตั้ง OSGeo4W เพื่อติดตั้ง QGIS2.2 ซึ่งมาพร้อมกับ Python 2.7 และ Numpy 1.5.1 แพนด้ารุ่นใหม่ที่สมเหตุสมผลต้องใช้ Numpy 1.6.1 หรือใหม่กว่า ดังนั้นดูเหมือนว่าปัญหาหลักของฉัน ฉันได้ลอง: - สร้าง pandas รุ่นเก่ากว่า (เช่น 0.7.3 และ 0.4.1) โดยใช้ easy_install แต่นั่นทำให้ฉันมีรายการข้อผิดพลาดที่ยาวมากอย่างน้อยที่สุดตัวสุดท้ายจะเกี่ยวข้องกับ distutils \ msvc9compiler.py - การใช้ไบนารีของนุ่นรุ่นเก่า แต่มันถูกสร้างขึ้นสำหรับ Numpy 1.6.1 - การอัปเกรด Numpy ซึ่งทำให้ฉันมีข้อผิดพลาด ในกรณีที่ใครสนใจข้อความลงท้ายด้วย "ไฟล์" C: \ OSGeo4W …
9 qgis  python  numpy 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.