Skip to content

Commit

Permalink
Added Landsat module for AWS
Browse files Browse the repository at this point in the history
  • Loading branch information
Amanda Tan committed Feb 7, 2022
1 parent b3d4759 commit 8240915
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 0 deletions.
16 changes: 16 additions & 0 deletions aws-landsat/install_packages.sh
Original file line number Diff line number Diff line change
@@ -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
59 changes: 59 additions & 0 deletions aws-landsat/process_sat.py
Original file line number Diff line number Diff line change
@@ -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)
Binary file added landsat/.combine.py.swp
Binary file not shown.

0 comments on commit 8240915

Please sign in to comment.