Created
June 27, 2015 03:12
-
-
Save simgislab/2f141fffd165ec0eedbf to your computer and use it in GitHub Desktop.
Run MRT Swath for MOD02/MOD03 files
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python -u | |
# -*- coding: utf-8 -*- | |
# --------------------------------------------------------------------------- | |
# modis1l-prepare4mrtswath.py | |
# Author: Maxim Dubinin (sim@gis-lab.info) | |
# About: Run MRT Swath for MOD02/MOD03 files | |
# Created: 26.06.2014 | |
# Usage example: python modis1l-prepare4mrtswath.py | |
# --------------------------------------------------------------------------- | |
import glob | |
import os | |
import shutil | |
def create_prm(): | |
prm = open('temp.prm','wb') | |
prm.write('INPUT_FILENAME = ' + wd + f_in + '\n') #D:\MOD02QKM.A2007204.0805.005.2007205121542.hdf | |
prm.write('GEOLOCATION_FILENAME = ' + wd + f_in_03 + '\n') #D:\MOD03.A2007204.0805.005.2007205033646.hdf | |
prm.write('INPUT_SDS_NAME = ' + dataset_name + ', ' + dataset_bands + '\n') #EV_250_RefSB, 1, 1 | |
prm.write('OUTPUT_SPATIAL_SUBSET_TYPE = LAT_LONG' + '\n') | |
prm.write('OUTPUT_SPACE_UPPER_LEFT_CORNER (LONG LAT) = ' + str(ul_x) + ' ' + str(ul_y) + '\n') #51.8 40.2 | |
prm.write('OUTPUT_SPACE_LOWER_RIGHT_CORNER (LONG LAT) = ' + str(lr_x) + ' ' + str(lr_y) + '\n') #61.3 30.2 | |
prm.write('OUTPUT_FILENAME = ' + wd + f_out + '\n') #D:\result | |
prm.write('OUTPUT_FILE_FORMAT = GEOTIFF_FMT' + '\n') | |
prm.write('KERNEL_TYPE (CC/BI/NN) = NN' + '\n') | |
prm.write('OUTPUT_PROJECTION_NUMBER = ALBERS' + '\n') | |
prm.write('OUTPUT_PROJECTION_PARAMETER = 0.0 0.0 52.0 64.0 45.0 0.0 8500000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0' + '\n') | |
prm.write('OUTPUT_PROJECTION_SPHERE = 8' + '\n') | |
prm.write('OUTPUT_PIXEL_SIZE = ' + str(res) + '\n') | |
prm.close() | |
if __name__ == '__main__': | |
#parameters start | |
swath2grid_path = 'c:/tools/MRTSwath/bin/' | |
os.environ['MRTSWATH_DATA_DIR'] = 'c:/tools/MRTSwath/data/' | |
product_type = 'MOD02QKM' | |
dataset_name = 'EV_250_RefSB' | |
numbands = 2 | |
dataset_bands = '1, 1' | |
ul_x = 44.17 | |
ul_y = 47.3 | |
lr_x = 47.6 | |
lr_y = 44.4 | |
res = 250 | |
f_out = 'result' | |
wd = os.getcwd() + '/' | |
#parameters end | |
hdfs = glob.glob(product_type + '*.hdf') | |
for f_in in hdfs: | |
datetime = f_in.split('.')[1] + '.' + f_in.split('.')[2] | |
f_in_03 = glob.glob('MOD03.' + datetime + '*.hdf')[0] | |
create_prm() | |
cmd = swath2grid_path + 'swath2grid.exe -pf=temp.prm' | |
os.system(cmd) | |
#merge in stack | |
bands_list = '' | |
for i in range(numbands): bands_list = bands_list + ' ' + f_out + '_' + dataset_name + '_b' + str(i) + '.tif' | |
bands_list = bands_list.strip(',') | |
for i in range(numbands): | |
cmd = 'gdal_calc.bat -A ' + f_out + '_' + dataset_name + '_b' + str(i) + '.tif' + ' --outfile=' + f_out + '_' + dataset_name + '_b' + str(i) + '_calc.tif' + ' --calc="A*(A<16000)" --NoDataValue=0' | |
os.system(cmd) | |
shutil.move(f_out + '_' + dataset_name + '_b' + str(i) + '_calc.tif', f_out + '_' + dataset_name + '_b' + str(i) + '.tif') | |
cmd = 'gdal_merge -separate -ps ' + str(res) + ' ' + str(res) + ' -o ' + datetime + '.tif' + bands_list | |
os.system(cmd) | |
for i in range(numbands): os.remove(f_out + '_' + dataset_name + '_b' + str(i) + '.tif') | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment