我尝试使用GDAL和Python将ENVI文件作为数组读取
图像信息如下:
Driver: ENVI/ENVI .hdr Labelled
Files: IMG-VV-ALPSRP248213250-P1.1__D_pwr_geo_sigma
IMG-VV-ALPSRP248213250-P1.1__D_pwr_geo_sigma.hdr
Size is 1659, 2775
Coordinate System is:
PROJCS["UTM Zone 16, Northern Hemisphere",
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
TOWGS84[0,0,0,0,0,0,0],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9108"]],
AUTHORITY["EPSG","4326"]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",0],
PARAMETER["central_meridian",-87],
PARAMETER["scale_factor",0.9996],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",0],
UNIT["Meter",1]]
Origin = (332125.000000000000000,2017650.000000000000000)
Pixel Size = (25.000000000000000,-25.000000000000000)
Image Structure Metadata:
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left ( 332125.000, 2017650.000) ( 88d35'16.06"W, 18d14'29.96"N)
Lower Left ( 332125.000, 1948275.000) ( 88d34'55.98"W, 17d36'53.41"N)
Upper Right ( 373600.000, 2017650.000) ( 88d11'44.12"W, 18d14'40.22"N)
Lower Right ( 373600.000, 1948275.000) ( 88d11'29.00"W, 17d37' 3.30"N)
Center ( 352862.500, 1982962.500) ( 88d23'21.23"W, 17d55'47.10"N)
Band 1 Block=1659x1 Type=Float32, ColorInterp=Undefined
我的代码如下:
^{pr2}$输出:
>>>array([[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
...,
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan]], dtype=float32)
数组中的所有值都是NaN,尽管我知道映像中有浮点32位值(通过ENVI软件检查)
我做错什么了?还是后缀有问题?在
我还尝试过使用gdal_translate将ENVI格式转换为Geotiff,但Geotiff也生成相同的数组。在
好消息,并不是所有的值都是nan。GDAL驱动程序(v.1.9.1)运行良好,有效数据在依赖GDAL的软件中可见(例如QGIS)。在
nan
值用于表示NoData。(通常,大多数人对NoData使用一些有限的“虚拟”值,例如1e+20)。在在Python/NumPy中表示缺少值的数组的最佳方法是使用masked array:
^{pr2}$相关问题 更多 >
编程相关推荐