Questions tagged «numpy»

NumPy是一个Python模块,添加了对大型多维数组和矩阵的支持,以及对这些数组进行操作的大型高级数学函数库。

5
将numpy数组写入栅格文件
我是GIS的新手。 我有一些代码将火星的红外图像转换成热惯性图,然后将其存储为2D numpy数组。我一直将这些地图另存为hdf5文件,但我真的很想将它们另存为栅格图像,以便可以在QGIS中对其进行处理。我经历了多次搜索,找到了如何执行此操作的方法,但是没有运气。我尝试按照http://www.gis.usu.edu/~chrisg/python/上的教程中的说明进行操作,但是当我将其示例代码生成的文件导入QGIS时,它们以纯灰色框打开。我觉得如果有人可以将最简单的过程建议为我想做的事的简化示例,那么我也许可以取得一些进展。我有QGIS和GDAL,很高兴安装任何人都可以推荐的其他框架。我使用Mac OS 10.7。 因此,例如,如果我有一个numpy的热惯性数组,看起来像: 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, 10.0, 10.0, 10.0), ( 9.5, 9.5, 9.5, 9.5), ( 9.0, 9.0, 9.0, 9.0), ( 8.5, 8.5, 8.5, 8.5) ) …
30 python  raster  gdal  numpy 

5
是否将栅格完全加载到numpy数组中?
我一直在尝试检查我在DEM栅格上的过滤器以进行模式识别,并且它总是导致缺少最后一行和最后一列(如..20)。我已经尝试了PIL库,图像加载。然后用numpy。输出是相同的。 我以为我的循环出了点问题,当检查数组中的值时(只是用ArcCatalog中的Identification选择像素),我意识到像素值未加载到数组中。 因此,只需打开,放入数组并保存数组中的图像即可: 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数组中,但是当图像较大时,我开始出现错误。我想这是关于numpy数组的限制,因此数组会像这样自动重塑或变形……所以ex: Traceback (most recent call last): File "<pyshell#36>", line 1, in <module> ima=numpy.array(inDs.GetRasterBand(1).ReadAsArray()) File "C:\Python25\lib\site-packages\osgeo\gdal.py", line 835, in ReadAsArray buf_xsize, buf_ysize, buf_obj ) File "C:\Python25\lib\site-packages\osgeo\gdal_array.py", line 140, in BandReadAsArray ar = numpy.reshape(ar, [buf_ysize,buf_xsize]) File …

1
使用gdal Python绑定复制gdalwarp的结果
我正在尝试使用GDAL python绑定进行重新投影/重新采样,但是与命令行实用程序相比,得到的结果略有不同gdalwarp。 请参阅下面的更新以获取更短的示例 此脚本说明了Python方法: 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, srs, dest_srs): x_min, y_max = top_left …
20 python  gdal  gdalwarp  numpy 

1
如何利用NumPy数组优化大数据地理处理?
我对学习如何利用NumPy数组优化地理处理感兴趣。我的大部分工作都涉及“大数据”,其中地理处理通常需要几天的时间才能完成某些任务。不用说,我对优化这些例程非常感兴趣。ArcGIS 10.1具有许多可通过arcpy访问的NumPy函数,包括: NumPyArrayToFeatureClass(arcpy.da) RasterToNumPyArray(arcpy) TableToNumPyArray(arcpy.da) 出于示例目的,假设我想利用NumPy数组优化以下处理密集型工作流程: 这里的总体思想是,有大量的基于矢量的点在矢量和基于栅格的操作中移动,从而生成二进制整数栅格数据集。 如何合并NumPy数组以优化此类工作流程?

3
将LAS文件转换为numpy数组?
我已经开始学习如何在python中处理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 file f = file.File(las_file, mode='r') # Get number of points from header num_points = int(f.__len__()) …
15 python  lidar  numpy  array  liblas 

1
使用rasterio获取单个点的像素值
要使用rasterio在栅格中的某个点上获得单个像素值,请参见此处的示例:https : //github.com/mapbox/rasterio/pull/275 但是,在rasterio(而不是cli)中是否有直接API可用于在栅格中的单个点提取值? -编辑 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)) for val in vals: print list(val)
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,但是如何根据输入栅格设置它们呢?我想不明白。 接受卢克的回答,这是我的解决方案。 Luke的两种解决方案都可以正确设置空间参考,范围和像元大小。但是第一种方法不能正确地在数组中传送数据,并且输出栅格到处都填充有nodata。他的第二种方法大多数情况下都有效,但是在我的无数据区域很大的地方,它填充有块状零和255。这可能与我处理nodata单元的方式有关,而且我不太确定自己的操作方式(尽管应该是另一个Q)。我包括了我正在谈论的图像。 #Setting the raster properties directly import arcpy import numpy inRaster0='C:/workspace/test0.tif' inRaster1='C:/workspace/test1.tif' outRaster='C:/workspace/test2.tif' dsc=arcpy.Describe(inRaster0) sr=dsc.SpatialReference ext=dsc.Extent ll=arcpy.Point(ext.XMin,ext.YMin) # sorry that i modify calculation …

3
用于逻辑运算符和其他功能的gdal_calc栅格计算器语法
在gdal_calc的文档中,使用numpy语法声明了命令行栅格计算器。稍后有几个示例,其中一个示例: gdal_calc.py -A input.tif --outfile = result.tif --calc =“ A *(A> 0)” --NoDataValue = 0- 表示将零以下的值设置为null 不幸的是,没有逻辑运算符的示例,例如: --calc =“ A *(A> 0和A> B)”- 表示如果A大于零且B较大,则保留A,并将其余值设置为null 基于Numpy / Scipy逻辑函数,我希望将逻辑运算符写为: --calc =“ A * logical_and(A> 0,A> B)” 我尝试了一下,它似乎可以工作,但是我想向您保证这是正确的。 以类似的方式,如果您想要最少的A和B: --calc =“ A *(A <= B)+ B *(A> B)” 您可以这样写: --calc =“ minimum(A,B)” 我的问题是我找不到任何食谱来确保我做对了。是否有一些不错的食谱,其中包含有关gdal_calc什么是和不可能的高级示例?
13 python  gdal  numpy  gdal-calc 

2
使用Psycopg2从Postgis将栅格数据下载到python中
我在postgres表中有栅格数据,我想以numpy数组的形式进入python。我正在使用psycopg2连接到数据库。我可以下载数据,但它以字符串形式返回(可能是序列化的二进制文件)。 有谁知道如何获取此字符串并将其转换为numpy数组吗? 我探索了其他下载栅格的选项,例如使用st_astiff并编码以下载hex文件并使用xxd,但这没有用。我不断收到错误消息“ rt_raster_to_gdal:无法加载输出GDAL驱动程序”,并且我没有权限设置环境变量以能够打开驱动程序。 TL,DR:想将栅格数据导入numpy数组(使用python)。

3
Gdal Dataset.ReadAsArray()使Python崩溃
我正在将Python 2.6.5(32bit)与Numpy 1.3和Gdal 1.9.1安装在Windows 7 64bit上。我试图将800 MB想象(.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 7 64bit的该问题,但他们还提到当时该问题已在最新的开发版本中修复。 其他人遇到过这个问题吗?任何解决方法? 更新: 我决定在PyDev中调试代码,以尝试确定失败的地方。据我所知(仍然没有收到任何错误消息),它在gdal_array.py的第22行上失败了。 _mod = imp.load_module('_gdal_array', fp, pathname, description) 当我进入上面的代码行时,它带我进入numpy 的init .py模块。当我到达numpy的结尾时。__ init __ .py模块,它跳回到上面的代码行。然后,当我按下“进入”按钮时,应该将我带到gdal_array.py中的下一行,该脚本只是终止而没有任何错误消息或任何内容。 更新#2: 我从Python Cheeseshop和OSGeo的Windows Binaries中卸载了GDAL 1.9.1,并安装了GDAL 1.6.1。仍然有同样的问题。
12 gdal  numpy  python-2.6  array 

1
在python中使用GDAL读取,修改和编写Geotiff
我正在尝试学习使用Python GDAL绑定和numpy进行遥感图像处理的绳索。作为首次尝试,我正在读取Landsat8 geotiff文件,进行简单的操作并将结果写入新文件。下面的代码看起来工作正常,除了原始栅格转储在输出文件中,而不是转储在操纵的栅格中。 欢迎提出任何意见或建议,但要特别注意为何未在结果中显示操纵的栅格。 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 = arr.Max() arr_mean = int(arr.mean()) arr_out = numpy.where((arr < arr_mean), …

1
来自Numpy阵列的PySAL自然休息
我正在尝试使用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:矩阵必须为二维”。 据我所知,greenArray是一个二维数组。

2
使用python gdal从GeoTiff获取坐标和相应的像素值,并将其另存为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"]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433], AUTHORITY["EPSG","4326"]], PROJECTION["Lambert_Azimuthal_Equal_Area"], PARAMETER["latitude_of_center",45], PARAMETER["longitude_of_center",-100], PARAMETER["false_easting",0], PARAMETER["false_northing",0], UNIT["metre",1, AUTHORITY["EPSG","9001"]]] …

3
如何使QGIS与熊猫一起玩(Windows)?
有没有人成功让熊猫在Windows上使用QGIS的Python安装?我已经使用OSGeo4W安装程序来安装QGIS2.2,它随Python 2.7和Numpy 1.5.1一起提供。任何合理的新版熊猫都需要Numpy 1.6.1或更高版本。所以这似乎是我的主要问题。我尝试过:-使用easy_install构建较旧版本的熊猫(例如0.7.3和0.4.1),但这给了我很长的错误列表,至少其中最后一个与distutils \ msvc9compiler.py有关。 -使用旧的熊猫版本的二进制文件,但它们都是为Numpy 1.6.1构建的-升级Numpy,这也给我一个错误消息。如果有人感兴趣,该消息以query_vcvarsall中的第299行“ File:C:\ OSGeo4W \ apps \ Python27 \ lib \ distutils \ msvc9compiler.py”结尾。 我想知道是否有其他人能够成功使熊猫与Windows上的QGIS安装配合使用? 如果QGIS附带不到三年的Numpy版本,那就太容易了。有人知道这种升级是否适用于即将发布的QGIS版本吗?
9 qgis  python  numpy 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.