diff --git a/aws-landsat/install_packages.sh b/aws-landsat/install_packages.sh new file mode 100755 index 0000000..43629a7 --- /dev/null +++ b/aws-landsat/install_packages.sh @@ -0,0 +1,16 @@ +#!/bin/bash -i + +wget -q 'https://repo.anaconda.com/miniconda/Miniconda3-py39_4.10.3-Linux-x86_64.sh' +chmod ug+x ./Miniconda3-py39_4.10.3-Linux-x86_64.sh +bash ./Miniconda3-py39_4.10.3-Linux-x86_64.sh -b + +echo 'export PATH="/home/ubuntu/miniconda3/bin:$PATH"' >> ~/.bashrc + +source ~/.bashrc + + +conda create -q -y --name myenv + +conda activate myenv + +conda install -y -c conda-forge rasterio diff --git a/aws-landsat/process_sat.py b/aws-landsat/process_sat.py new file mode 100755 index 0000000..81cb0db --- /dev/null +++ b/aws-landsat/process_sat.py @@ -0,0 +1,59 @@ +#!/usr/bin/python3 +import os +import rasterio + +print('Landsat on AWS:') +filepath = 'http://landsat-pds.s3.amazonaws.com/c1/L8/042/034/LC08_L1TP_042034_20170616_20170629_01_T1/LC08_L1TP_042034_20170616_20170629_01_T1_B4.TIF' +with rasterio.open(filepath) as src: + print(src.profile) + +with rasterio.open(filepath) as src: + oviews = src.overviews(1) # list of overviews from biggest to smallest + oview = oviews[-1] # let's look at the smallest thumbnail + print('Decimation factor= {}'.format(oview)) + # NOTE this is using a 'decimated read' (http://rasterio.readthedocs.io/en/latest/topics/resampling.html) + thumbnail = src.read(1, out_shape=(1, int(src.height // oview), int(src.width // oview))) + +print('array type: ',type(thumbnail)) +print(thumbnail) + +date = '2017-06-16' +url = 'http://landsat-pds.s3.amazonaws.com/c1/L8/042/034/LC08_L1TP_042034_20170616_20170629_01_T1/' +redband = 'LC08_L1TP_042034_20170616_20170629_01_T1_B{}.TIF'.format(4) +nirband = 'LC08_L1TP_042034_20170616_20170629_01_T1_B{}.TIF'.format(5) + +with rasterio.open(url+redband) as src: + profile = src.profile + oviews = src.overviews(1) # list of overviews from biggest to smallest + oview = oviews[1] # Use second-highest resolution overview + print('Decimation factor= {}'.format(oview)) + red = src.read(1, out_shape=(1, int(src.height // oview), int(src.width // oview))) + print(red) + +def calc_ndvi(nir,red): + '''Calculate NDVI from integer arrays''' + nir = nir.astype('f4') + red = red.astype('f4') + ndvi = (nir - red) / (nir + red) + return ndvi + +np.seterr(invalid='ignore') +ndvi = calc_ndvi(nir,red) +print(ndvi) + +localname = 'LC08_L1TP_042034_20170616_20170629_01_T1_NDVI_OVIEW.tif' + +with rasterio.open(url+nirband) as src: + profile = src.profile.copy() + + aff = src.transform + newaff = rasterio.Affine(aff.a * oview, aff.b, aff.c, + aff.d, aff.e * oview, aff.f) + profile.update({ + 'dtype': 'float32', + 'height': ndvi.shape[0], + 'width': ndvi.shape[1], + 'transform': newaff}) + + with rasterio.open(localname, 'w', **profile) as dst: + dst.write_band(1, ndvi) diff --git a/landsat/.combine.py.swp b/landsat/.combine.py.swp new file mode 100644 index 0000000..2e0666f Binary files /dev/null and b/landsat/.combine.py.swp differ