python 读取 modis hdf文件

本文介绍了如何使用Python从MODIS卫星HDF文件中读取特定数据集,如经纬度及反射率等,并展示了如何获取数据及其属性,如辐射偏移量和比例尺。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from pyhdf.SD import SD, SDC
import pprint

HDF_FILR_URL = "E:\MyDownloads\MOD021KM.A2012156.0115.006.2014225090534.hdf"
file = SD(HDF_FILR_URL)

print(file.info())


输出(31, 58),说明有31个科学数据集

datasets_dic = file.datasets()

for idx,sds in enumerate(datasets_dic.keys()):
    print(idx,sds)

输出数据集编号名称 0 Latitude
1 Longitude
2 EV_1KM_RefSB
3 EV_1KM_RefSB_Uncert_Indexes
4 EV_1KM_Emissive
5 EV_1KM_Emissive_Uncert_Indexes
6 EV_250_Aggr1km_RefSB
7 EV_250_Aggr1km_RefSB_Uncert_Indexes
8 EV_250_Aggr1km_RefSB_Samples_Used
9 EV_500_Aggr1km_RefSB
10 EV_500_Aggr1km_RefSB_Uncert_Indexes
11 EV_500_Aggr1km_RefSB_Samples_Used
12 Height
13 SensorZenith
14 SensorAzimuth
15 Range
16 SolarZenith
17 SolarAzimuth
18 gflags
19 EV_Band26
20 EV_Band26_Uncert_Indexes
21 Band_250M
22 Band_500M
23 Band_1KM_RefSB
24 Band_1KM_Emissive
25 Noise in Thermal Detectors
26 Change in relative responses of thermal detectors
27 DC Restore Change for Thermal Bands
28 DC Restore Change for Reflective 250m Bands
29 DC Restore Change for Reflective 500m Bands
30 DC Restore Change for Reflective 1km Bands
sds_obj = file.select('Latitude') # select sds
sds_obj = file.select('cloud_top_temperature_1km') # select sds

data = sds_obj.get() # get sds data
print data
输出cloud_top_temperature_1km数据
 [[19875 19720 19740 ..., 19608 19591 19533]
  [19473 19413 19272 ..., 19431 19422 19420]
  [19125 19335 18972 ..., 19344 19475 19347]
  ...,
  [18335 18240 18584 ..., 12935 12819 12955]
  [18437 18747 18843 ..., 13152 13085 12855]
  [18662 18858 18584 ..., 13241 12866 12797]]


 [[23891 24528 24340 ..., 23878 23999 24114]
  [23780 23818 24004 ..., 23648 23735 23648]
  [23934 24230 23675 ..., 23861 23544 23839]
  ...,
  [22585 22190 22585 ..., 18565 18332 18656]
  [22169 22499 22573 ..., 18441 18818 18247]
  [22313 22571 22719 ..., 18555 18521 18443]]]


pprint.pprint(sds_obj.attributes())

输出数据性质

{'_FillValue': 65535,
 'band_names': '20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36',
 'long_name': 'Earth View 1KM Emissive Bands Scaled Integers',
 'radiance_offsets': [2730.58349609375,
                      2730.58349609375,
                      2730.58349609375,
                      2730.58349609375,
                      1077.44482421875,
                      1560.3333740234375,
                      2730.583251953125,
                      2317.48828125,
                      2730.58349609375,
                      1560.333251953125,
                      1577.3397216796875,
                      1658.2213134765625,
                      2501.297607421875,
                      2501.297607421875,
                      2501.2978515625,
                      2501.2978515625],
 'radiance_scales': [6.262398528633639e-05,
                     0.0031495101284235716,
                     6.921597378095612e-05,
                     7.910397835075855e-05,
                     3.155614103889093e-05,
                     5.639820665237494e-05,
                     0.00011755729792639613,
                     0.0001924497337313369,
                     0.000532486941665411,
                     0.0004063234373461455,
                     0.0008400219958275557,
                     0.000729697581846267,
                     0.00026226387126371264,
                     0.00020069582387804985,
                     0.0001767082721926272,
                     0.0001183385684271343],
 'radiance_units': 'Watts/m^2/micrometer/steradian',
 'units': 'none',
 'valid_range': [0, 32767]}

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值