yannforget / landsatxplore

Search and download Landsat scenes from EarthExplorer.
MIT License
217 stars 95 forks source link

surface reflectance data and meta data only #68

Open henrykironde opened 2 years ago

henrykironde commented 2 years ago

surface reflectance:

We would like to only download SR scenes from landsat_ot_c2_l2. But landsat_ot_c2_l2 downloading does not work (says download not available).

Meta data: Is it possible to have only the metadata so that we can select which products to download. We want to reduce the files and size of the product downloaded. We want to filter by surface reflectance before downloading to reduce the size.

Ref #38

domierosina commented 1 year ago

This might not be the most efficient method, but I am in a similar situation as I want to download the image with the least amount of cloud cover. Once I find all images with the API search that are in the path/row region of interested I am interested I use the metadata from the search to decide which one to select for download. I save the search to a list and then removed from the list based on my criteria and the metadata provided.

For example the metadata I get some a search is below. This is one scene's meta data. I then use the cloud_cover attribute in this list and sort then grab the smallest value. I recommend printing to the console all of the elements and looking for the attribute ID you want to use to pick your scenes. Hope this helps a bit.

{'cloud_cover': 19, 'entity_id': 'LC80290202020197LGN01', 'display_id': 'LC08_L1TP_029020_20200715_20210330_02_T1', 'ordering_id': 'None', 'landsat_product_id': 'LC08_L1TP_029020_20200715_20210330_02_T1', 'landsat_scene_id': 'LC80290202020197LGN01', 'acquisition_date': datetime.datetime(2020, 7, 15, 0, 0), 'collection_category': datetime.datetime(2023, 2, 1, 0, 0), 'collection_number': 2, 'wrs_path': 29, 'wrs_row': 20, 'nadir-off_nadir': 'NADIR', 'roll_angle': 0.0, 'date_product_generated': datetime.datetime(2021, 3, 30, 0, 0), 'land_cloud_cover': 40.74, 'scene_cloud_cover': 19.22, 'start_time': datetime.datetime(2020, 7, 15, 17, 7, 24, 634020), 'stop_time': datetime.datetime(2020, 7, 15, 17, 7, 56, 404020), 'station_id': 'LGN', 'day-night_indicator': 'DAY', 'ground_control_points_model': 347, 'ground_control_points_version': 5, 'geometric_rmse_model': 7.325, 'geometric_rmse_model_x': 5.505, 'geometric_rmse_model_y': 4.833, 'image_quality': 9, 'processing_software_version': 'LPGS_15.4.0', 'sun_elevation_l0ra': 52.30272974, 'sun_azimuth_l0ra': 155.9665622, 'tirs_ssm_model': 'FINAL', 'data_type': 'OLI_TIRS_L1TP', 'sensor_id': 'OLI_TIRS', 'satellite': 8, 'panchromatic_lines': 16021, 'panchromatic_samples': 15841, 'reflective_lines': 8011, 'reflective_samples': 7921, 'thermal_lines': 8011, 'thermal_samples': 7921, 'product_map_projection': 'UTM', 'utm_zone': 15, 'datum': 'WGS84', 'ellipsoid': 'WGS84', 'grid_cell_size_panchromatic': 15.0, 'grid_cell_size_reflective': 30.0, 'grid_cell_size_thermal': 30.0, 'bias_parameter_file_name_oli': 'LO8BPF20200715151302_20200715171921.01', 'bias_parameter_file_name_tirs': 'LT8BPF20200705192819_20200719110031.01', 'calibration_parameter_file': 'LC08CPF_20200701_20200930_02.04', 'rlut_file_name': 'LC08RLUT_20150303_20431231_02_01.h5', 'scene_center_latitude': 57.30975, 'scene_center_longitude': -90.91495, 'corner_upper_left_latitude': 58.40134, 'corner_upper_left_longitude': -92.88536, 'corner_upper_right_latitude': 58.33333, 'corner_upper_right_longitude': -88.82648, 'corner_lower_left_latitude': 56.24272, 'corner_lower_left_longitude': -92.89189, 'corner_lower_right_latitude': 56.18009, 'corner_lower_right_longitude': -89.06342, 'has_customized_metadata': None, 'options': {'bulk': True, 'download': True, 'order': False, 'secondary': False}, 'selected': {'bulk': False, 'compare': False, 'order': False}, 'spatial_bounds': (-92.89023, 56.20468, -88.87987, 58.39652), 'spatial_coverage': <shapely.geometry.polygon.Polygon object at 0x0000019E49A00C10>, 'temporal_coverage': [datetime.datetime(2020, 7, 15, 0, 0), datetime.datetime(2020, 7, 15, 0, 0)], 'publish_date': datetime.datetime(2022, 6, 22, 18, 27, 47, tzinfo=tzoffset(None, -18000))}