kylebarron / landsat-cogeo-mosaic

Create mosaicJSON for Landsat imagery
https://kylebarron.dev/landsat-cogeo-mosaic/
MIT License
4 stars 0 forks source link

Incorrect path-row positions #8

Closed kylebarron closed 4 years ago

kylebarron commented 4 years ago

path-row positions are sometimes incorrect historically.

These are all defined with a row of 33 and a column of 35, but one of them is far off from the others:

image

So you should double check geometries of the assets when inserting. The mostly-overlapping set of assets have a maximum translation of 5km.

kylebarron commented 4 years ago

This is because the satellite hadn't yet reached operational orbit. From here:

Nearly 10,000 scenes were acquired by the Operational Land Imager (OLI) and/or Thermal Infrared Sensor (TIRS) sensors after launch (February 11, 2013) through April 10, 2013, when the satellite achieved operational orbit (WRS-2). The earliest images are TIRS data only. These data are also visible and can be downloaded from EarthExplorer or GloVis.

Find earliest images in pathrow:

SELECT productId, acquisitionDate FROM scene_list WHERE pathrow = "035033" ORDER BY acquisitionDate LIMIT 10;
LC08_L1TP_035033_20130326_20170310_01_T1|2013-03-26 17:54:08.092049
LC08_L1TP_035033_20130331_20170313_01_T1|2013-03-31 17:49:58.062307
LC08_L1TP_035033_20130417_20170310_01_T1|2013-04-17 17:51:52.008781
LC08_L1TP_035033_20130503_20170310_01_T1|2013-05-03 17:51:51.618988
LC08_L1TP_035033_20130519_20170310_01_T1|2013-05-19 17:52:04.440442
LC08_L1TP_035033_20130604_20170310_01_T1|2013-06-04 17:52:06.120736
LC08_L1TP_035033_20130620_20170309_01_T1|2013-06-20 17:51:58.558783
LC08_L1TP_035033_20130706_20170309_01_T1|2013-07-06 17:52:02.793720
LC08_L1TP_035033_20130722_20170309_01_T1|2013-07-22 17:52:01.005712
LC08_L1TP_035033_20130823_20170309_01_T1|2013-08-23 17:52:05.991158

Then visualize:

scene = 'LC08_L1TP_035033_20130326_20170310_01_T1'
scene2 = 'LC08_L1TP_035033_20130706_20170309_01_T1'
from rio_tiler.io.landsat8 import bounds
from shapely.geometry import box
geom1 = box(*bounds(scene)['bounds'])
geom2 = box(*bounds(scene2)['bounds'])
bounds(scene2)
from keplergl_cli import Visualize
Visualize([geom1, geom2])

image

The first scene is on the left. These are bounding boxes, not actual geometries, but it's still clear.

Solution: Restrict earliest imagery to be from April 11, 2013