Skip to main content

Source Code to Convert NASA's Black Marble HDF4 Product to GeoTIFF

Download the source code to convert NASA's Black Marble HDF4 product to GeoTIFF.

Use the following source code to convert NASA's Black Marble HDF4 product to GeoTIFF.

import gdal, os

##Folder with input HDF files
os.chdir('C:\\InputFolder')

rasterFiles = os.listdir(os.getcwd())
print(rasterFiles)

#Get File Name Prefix
rasterFilePre = rasterFiles[0][:-4]
print(rasterFilePre)

fileExtension = ".tif"

## Open HDF file (first if multiple files are in same directory)
hdflayer = gdal.Open(rasterFiles[0], gdal.GA_ReadOnly)

#print (hdflayer.GetSubDatasets())

# Open raster layer
#hdflayer.GetSubDatasets()[0][0] - for first layer
#hdflayer.GetSubDatasets()[1][0] - for second layer ...etc
rlayer = gdal.Open(hdflayer.GetSubDatasets()[1][0], gdal.GA_ReadOnly)
outputName = rlayer.GetMetadata_Dict()['long_name']


outputNameNoSpace = outputName.strip().replace(" ","_").replace("/","_")
outputNameFinal = outputNameNoSpace + rasterFilePre + fileExtension
print(outputNameFinal)

outputFolder = "C:\\OutputFolder\\"

outputRaster = outputFolder + outputNameFinal

gdal.Warp(outputRaster,rlayer)


#Display image in QGIS (run it within QGIS python Console) - remove comment to display
#iface.addRasterLayer(outputRaster, outputNameFinal)