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