GDAL读取栅格图的问题----有关Null值设置。

40 views
Skip to first unread message

GoogleWind

unread,
Aug 11, 2009, 6:46:17 AM8/11/09
to gdal+python+GIS+geosings论坛
我用GDAL读取栅格图,图片的第一行是空值(Null),代码:

import gdal
import osr

dataset=gdal.Open("D:/Project/Taihu/CloneMap125/Basic/CloneMap.map")
w = dataset.RasterXSize
h = dataset.RasterYSize
Band = dataset.GetRasterBand(1)
arr = Band.ReadAsArray(0,0,w,h)

print arr[0]

结果:
[ -3.40282347e+38 -3.40282347e+38 -3.40282347e+38 -3.40282347e+38
-3.40282347e+38 -3.40282347e+38 -3.40282347e+38 -3.40282347e+38
 ........................................................................................................
-3.40282347e+38 -3.40282347e+38 -3.40282347e+38 -3.40282347e+38
-3.40282347e+38 -3.40282347e+38 -3.40282347e+38 -3.40282347e+38]

问题:能不能把图中的空值设成0,不要这么大的一个数。

linux23...@gmail.com

unread,
Aug 11, 2009, 10:08:28 PM8/11/09
to gdal+python+GIS+geosings论坛
你随便换成最大最小值范围外的任何值(0如果在最大最小值里,就不能设成0,因为这时0是有实际意义的)。

用numeric可以很容易得换。不过换过之后你自己要记得哟

On 8月11日, 下午6时46分, GoogleWind <GoogleW...@163.com> wrote:
> 我用GDAL读取栅格图,图片的第一行是空值(Null),代码:
>
> import gdal
> import osr
>
> dataset=gdal.Open("D:/Project/Taihu/CloneMap125/Basic/CloneMap.map")
> w = dataset.RasterXSize
> h = dataset.RasterYSize
> Band = dataset.GetRasterBand(1)
> arr = Band.ReadAsArray(0,0,w,h)
>
> print arr[0]
>
> 结果:
> [ -3.40282347e+38 -3.40282347e+38 -3.40282347e+38 -3.40282347e+38
> -3.40282347e+38 -3.40282347e+38 -3.40282347e+38 -3.40282347e+38

>  ...........................................................................-.............................

hjc

unread,
Aug 13, 2009, 2:40:02 AM8/13/09
to gdal+python+GIS+geosings论坛
主要是想利用GDAL的调节分辨率,如:arr = Band.ReadAsArray(0,0,w,h,w/2,h/2) ,如果读成(w,h)数
组,就不能方便地重采样了,有其它办法吗?

linux23...@gmail.com

unread,
Aug 24, 2009, 6:37:46 AM8/24/09
to gdal+python+GIS+geosings论坛
选择最临近从采样不会有问题的吧

hjc

unread,
Sep 1, 2009, 2:03:49 AM9/1/09
to gdal+python+GIS+geosings论坛
可以采用最邻近点采样的方法,那如何将(w,h)的数组,方便地采样成(w/2,h/2)的数组?
Reply all
Reply to author
Forward
0 new messages