https://www.mapbox.com/blog/processing-landsat-8/
June 26, 2014 ยท View on GitHub
task :landsat_2014 => :environment do
dirs = Dir["#{Rails.root.to_s}/db/initial/raster/*"].reject {|q| q =~ /tar.gz/ }
dirs.each do |dir|
scene_id = dir.split("/")[-1]
[4,3,2].each do |band|
gdalwarp -t_srs EPSG:3857 #{dir}/#{scene_id}_B#{band}.TIF #{dir}/#{scene_id}_B#{band}-projected.tif
end
convert -combine #{dir}/#{scene_id}_B{4,3,2}-projected.tif #{dir}/#{scene_id}_RGB-projected.tif && \ convert -channel B -gamma 0.925 -channel R -gamma 1.03 -channel RGB -sigmoidal-contrast 50x16% #{dir}/#{scene_id}_RGB-projected.tif #{dir}/#{scene_id}_RGB-projected-corrected.tif && \ convert -depth 8 #{dir}/#{scene_id}_RGB-projected-corrected.tif #{dir}/#{scene_id}_RGB-projected-corrected-8bit.tif && \ listgeo -tfw #{dir}/#{scene_id}_B4-projected.tif && \ mv #{dir}/#{scene_id}_B4-projected.tfw #{dir}/#{scene_id}_RGB-projected-corrected-8bit.tfw && \ gdal_edit.py -a_srs EPSG:3857 #{dir}/#{scene_id}_RGB-projected-corrected-8bit.tif && \ gdal_translate -a_nodata 0 #{dir}/#{scene_id}_RGB-projected-corrected-8bit.tif #{dir}/#{scene_id}_RGB-projected-corrected-8bit-nodata.tif
end
end
task :landsat_2014_merge => :environment do
dirs = Dir["#{Rails.root.to_s}/db/initial/raster/"].reject {|q| q =~ /..$/ }
scenes = dirs.map do |q|
scene_id = q.split("/")[-1]
corrected = "#{q}/#{scene_id}_RGB-projected-corrected-8bit-nodata.tif"
end
cd #{Rails.root.to_s}/db/initial/raster/ && gdalwarp --config GDAL_CACHEMAX 3000 -wm 3000 #{scenes.join(" ")} #{Rails.root.to_s}/db/initial/raster/merged.tif
end