欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python調(diào)用HEG工具批量處理MODIS數(shù)據(jù)的方法及注意事項

 更新時間:2020年02月18日 09:01:51   作者:歲時  
這篇文章主要介紹了python調(diào)用HEG工具批量處理MODIS數(shù)據(jù)的方法,本文給大家提到了注意事項,通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

下面的代碼主要用于使用python語言調(diào)用NASA官方的MODIS處理工具HEG進行投影坐標轉(zhuǎn)換與重采樣批量處理
主要參考

主要的注意事項如下:

  1. 首先按照官方指南安裝HEG工具,具體安裝步驟可參考我的上篇博客:https://www.cnblogs.com/yhpan/p/11298595.html
  2. 根據(jù)HEG用戶手冊批量生成批處理參數(shù)文件,可以在HEG工具中生成一個文件,拿來自己改改用用
  3. 具體調(diào)用哪一個工具,參數(shù)文件如何寫,請一定仔細閱讀用戶手冊,東西全都在上面。一般常用的是resample.exe和swtif.exe,如果實在無法判斷可以先用HEG的GUI處理一個自己的數(shù)據(jù),保存一個prm文件,然后根據(jù)這個文件中的參數(shù),對照著用戶手冊一個一個的找,就可以了。
  4. 生成參數(shù)文件寫入時一定要注意,設定換行符為‘\n',fo=open(prmfilename,'w',newline='\n'),否則由于在windows系統(tǒng)下默認換行符為‘\r\n',程序無法運行成功

下面是源碼分享

# -*- coding: utf-8 -*-
"""
Created on Sun Feb 16 11:27:19 2020
調(diào)用HEG相關工具批處理MODIS數(shù)據(jù),主要完成投影坐標轉(zhuǎn)換與重采樣
@author: pan
"""
import os

# 設置HEG相關環(huán)境變量
os.environ['MRTDATADIR']='D:/MyApps/HEG/HEG_Win/data'
os.environ['PGSHOME']='D:/MyApps/HEG/HEG_Win/TOOLKIT_MTD'
os.environ['MRTBINDIR']='D:/MyApps/HEG/HEG_Win/bin'

# 設置HEG的bin路徑
hegpath = 'D:/MyApps/HEG/HEG_Win/bin'
# 指定處理模塊的可執(zhí)行程序文件路徑,此處采用resample.exe,可以根據(jù)具體的處理問題設置
hegdo = os.path.join(hegpath, 'resample.exe')
hegdo = hegdo.replace('\\', '/') # 全路徑以“/”連接

# 指定輸入數(shù)據(jù)的路徑
inpath = r'C:\Users\pan\Desktop\Py_ex\data\hdf'
inpath = inpath.replace('\\', '/')
# 指定輸出數(shù)據(jù)的路徑
outpath = r'C:\Users\pan\Desktop\Py_ex\data\hdf\out'
outpath = outpath.replace('\\', '/')
# os.chdir(inpath) #改變當前工作目錄到輸入數(shù)據(jù)目錄

# 獲取當前文件夾下的所有hdf文件
allfiles = os.listdir(inpath)
allhdffiles = []
for eachfile in allfiles:
  if os.path.splitext(eachfile)[1] =='.hdf':
    allhdffiles.append(eachfile)
print('--'*20)
print('文件數(shù)量為:', len(allhdffiles),',所有hdf文件如下')
print(' '+'\n '.join(allhdffiles))
print('--'*20)

# prm文件設置模塊,需要首先在HEG工具中生成一個參考的prm文件,示例如下
# 設置prm文件存儲路徑
prmpath = r"C:\Users\pan\Desktop\Py_ex\data\hdf\prm"
prmpath = prmpath.replace('\\', '/')
for eachhdf in allhdffiles:
  prm=['NUM_RUNS = 1\n',
   'BEGIN\n',
   'INPUT_FILENAME = ' + inpath+'/'+eachhdf+'\n',
   'OBJECT_NAME = MODIS_Grid_8Day_1km_LST|\n',
   'FIELD_NAME = LST_Day_1km\n',
   'BAND_NUMBER = 1\n','SPATIAL_SUBSET_UL_CORNER = ( 90.0 -180.0 )\n',
   'SPATIAL_SUBSET_LR_CORNER = ( -90.0 180 )\n',
   'RESAMPLING_TYPE = BI\n',
   'OUTPUT_PROJECTION_TYPE = ALBERS\n',
   'ELLIPSOID_CODE = WGS84\n',
   'OUTPUT_PROJECTION_PARAMETERS = ( 0.0 0.0 25.0 47.0 105.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 )\n',
   'OUTPUT_PIXEL_SIZE = 500.0\n',
   'OUTPUT_FILENAME = ' + outpath+'/'+eachhdf+'_out.tif\n',
   'OUTPUT_TYPE = GEO\n',
   'END\n']
  prmfilename=prmpath +'/'+ eachhdf+'.prm'
  prmfilename=prmfilename.replace('\\', '/')
  #這里一定要注意,設定換行符為‘\n',否則由于在windows系統(tǒng)下默認換行符為‘\r\n',則無法運行成功
  fo=open(prmfilename,'w',newline='\n')
  fo.writelines(prm)
  fo.close()

for eachhdf in allhdffiles:
  prmfilepath=prmpath +'\\'+ eachhdf + '.prm'
  prmfilepath=prmfilepath.replace('\\', '/')
  try:
    resamplefiles = '{0} -P {1}'.format(hegdo, prmfilepath)
    os.system(resamplefiles)    
    print(eachhdf + ' has finished')
  except:
    # 提示錯誤信息
    print(eachhdf + 'was wrong')

總結(jié)

以上所述是小編給大家介紹的python調(diào)用HEG工具批量處理MODIS數(shù)據(jù)的方法及注意事項,希望對大家有所幫助!

相關文章

  • Django中create和save方法的不同

    Django中create和save方法的不同

    這篇文章主要給大家介紹了關于Django中create和save方法的不同之處,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Django具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • 使用paramiko遠程執(zhí)行命令、下發(fā)文件的實例

    使用paramiko遠程執(zhí)行命令、下發(fā)文件的實例

    下面小編就為大家?guī)硪黄褂胮aramiko遠程執(zhí)行命令、下發(fā)文件的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 使paramiko庫執(zhí)行命令時在給定的時間強制退出功能的實現(xiàn)

    使paramiko庫執(zhí)行命令時在給定的時間強制退出功能的實現(xiàn)

    這篇文章主要介紹了使paramiko庫執(zhí)行命令時,在給定的時間強制退出,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Python中轉(zhuǎn)換角度為弧度的radians()方法

    Python中轉(zhuǎn)換角度為弧度的radians()方法

    這篇文章主要介紹了Python中轉(zhuǎn)換角度為弧度的radians()方法,是Python入門中的基礎知識,需要的朋友可以參考下
    2015-05-05
  • python 實現(xiàn)列表的切片操作允許索引超出范圍

    python 實現(xiàn)列表的切片操作允許索引超出范圍

    這篇文章主要介紹了python 實現(xiàn)列表的切片操作允許索引超出范圍,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python?遠程執(zhí)行命令的詳細代碼

    python?遠程執(zhí)行命令的詳細代碼

    有時會需要在遠程的機器上執(zhí)行一個命令,并獲得其返回結(jié)果。對于這種情況,python 可以很容易的實現(xiàn)。今天通過實例代碼介紹下python?遠程執(zhí)行命令的相關知識,感興趣的朋友一起看看吧
    2022-02-02
  • 海王小姐姐悄悄問我怎么在PC端登錄多個微信

    海王小姐姐悄悄問我怎么在PC端登錄多個微信

    這篇文章主要介紹了怎么在PC端登錄多個微信號,眾所周知pc端一般只能登陸一個微信號,可這年頭誰還只有一個號,又不能同時用兩臺電腦,這篇文章帶給你答案
    2021-08-08
  • python調(diào)用staf自動化框架的方法

    python調(diào)用staf自動化框架的方法

    今天小編就為大家分享一篇python調(diào)用staf自動化框架的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 解決jupyter notebook 出現(xiàn)In[*]的問題

    解決jupyter notebook 出現(xiàn)In[*]的問題

    這篇文章主要介紹了解決jupyter notebook 出現(xiàn)In[*]的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python中upper是做什么用的

    python中upper是做什么用的

    在本篇文章里小編給大家整理的是一篇關于python中upper的作用的相關文章,有需要的朋友們可以參考下。
    2020-07-07

最新評論