Explore search results with GeoPandas¶
The G-Portal Catalogue Service returns products with numerous metadata in GeoJSON format.
GeoPandas is a library to work with such data.
import gportal
import geopandas as gpd
%config InlineBackend.figure_formats = ['retina']
Convert search results into GeoDataFrame¶
Search for GCOM-C Level 2 SST products near Tokyo in January 2023.
aoi = [140, 30, 145, 35] # area of interest
datasets = gportal.datasets()
res = gportal.search(
dataset_ids=datasets["GCOM-C/SGLI"]["LEVEL2"]["Oceanic sphere"]["L2-SST"],
start_time="2023-01-01T00:00:00",
end_time="2023-01-31T23:59:59",
bbox=aoi,
)
res.matched()
206
Product represents a GeoJSON, but its properties are nested.
GeoDataFrame is not suited for handling nested properties.
product = next(res.products())
product.properties
{'identifier': 'GC1SG1_202301010122E04710_L2SG_SSTDK_3001',
'acquisitionType': 'NOMINAL',
'imageQualityDegradation': None,
'imageQualityDegradationQuotationMode': None,
'processingDate': '2023-01-01T15:20:47.00Z',
'processingLevel': 'L2',
'ProductType': 'S',
'status': 'ARCHIVED',
'beginPosition': '2023-01-01T01:21:56.94Z',
'endPosition': '2023-01-01T01:26:44.51Z',
'platformShortName': 'GCOM-C',
'instrumentShortName': 'SGLI',
'sensorType': 'OPTICAL',
'operationalMode': 'NOMINAL',
'resolution': None,
'orbitNumber': 47,
'lastOrbitNumber': None,
'DayNight': None,
'illuminationAzimuthAngle': None,
'illuminationElevationAngle': None,
'multiExtentOf': '134.51026916503906 46.44524002075195 140.54034423828125 45.92348480224609 144.48358154296875 45.40235137939453 148.24114990234375 44.76785278320313 153.32365417480469 43.68489837646484 154.52767944335938 43.38881301879883 153.22018432617188 40.91696929931641 152.01185607910156 38.42909622192383 150.88957214355469 35.92721176147461 149.84219360351563 33.41301345825195 148.86044311523438 30.88793373107910 147.93641662597656 28.35320091247559 147.46324157714844 26.99820137023926 142.85005187988281 27.90709114074707 139.73326110839844 28.42703247070313 136.67523193359375 28.86391067504883 132.38002014160156 29.35588836669922 131.33270263671875 29.45441246032715 131.81683349609375 32.05686187744141 132.29971313476563 34.65885543823242 132.78254699707031 37.26024246215820 133.26670837402344 39.86090850830078 133.75375366210938 42.46072006225586 134.24545288085938 45.05959320068359 134.51026916503906 46.44524002075195',
'centerOf': '141.85800170898438 36.94295883178711',
'product': {'fileName': 'https://gportal.jaxa.jp/download/standard/GCOM-C/GCOM-C.SGLI/L2.OCEAN.SST_/3/2023/01/01/GC1SG1_202301010122E04710_L2SG_SSTDK_3001.h5',
'size': 4194304,
'DataFormatType': 'HDF5',
'version': 3},
'browse': [{'type': 'QUICKLOOK',
'fileName': 'https://gportal.jaxa.jp/gpr/img/br/GC1SG1_202301010122E04710_L2SG_SSTDK_3001/GC1SG1_202301010122E04710_L2SG_SSTDK_3001.jpg'},
{'type': 'QUICKLOOK',
'fileName': 'https://gportal.jaxa.jp/gpr/img/sb/GC1SG1_202301010122E04710_L2SG_SSTDK_3001/GC1SG1_202301010122E04710_L2SG_SSTDK_3001-000.jpg'},
{'type': 'THUMBNAIL',
'fileName': 'https://gportal.jaxa.jp/gpr/img/thm/GC1SG1_202301010122E04710_L2SG_SSTDK_3001/GC1SG1_202301010122E04710_L2SG_SSTDK_3001_thm.jpg'}],
'gpp': {'datasetId': 10002002,
'totalQualityCode': 'Good',
'cloudCoverPercentage': 68,
'operatorComment': None,
'compressFlag': 1,
'physicalQuantity': 'SGLI SST',
'Resolution': '1km',
'browseImageSize': 813,
'parameterVersion': 1,
'algorithmVersion': 3,
'numberPixels': None,
'numberLines': None,
'numberBands': None,
'numberMissingData': None,
'sceneNumber': 10,
'startPathNumber': 47,
'endPathNumber': 47,
'startArgumentLat': None,
'endArgumentLat': None,
'mapProjection': None,
'mapDirection': None,
'orbitDirection': 'Descending',
'tileNo': None,
'channels': None,
'bandWidth': None,
'downlinkSegmentNumber': None,
'sensorOffPeriod': None,
'sceneCenterTime': '2023-01-01T01:24:20.73Z',
'startSubsatellitePosition': None,
'endSubsatellitePosition': None,
'ProcessTimeUnit': None,
'tileHNo': None,
'tileVNo': None,
'topicCategory': '-',
'organizationName': 'JAXA',
'pseq': 'EQ',
'hasProduct': True}}
Product has a utility method to flatten the nested properties.
product.flatten_properties()
{'identifier': 'GC1SG1_202301010122E04710_L2SG_SSTDK_3001',
'acquisitionType': 'NOMINAL',
'imageQualityDegradation': None,
'imageQualityDegradationQuotationMode': None,
'processingDate': '2023-01-01T15:20:47.00Z',
'processingLevel': 'L2',
'ProductType': 'S',
'status': 'ARCHIVED',
'beginPosition': '2023-01-01T01:21:56.94Z',
'endPosition': '2023-01-01T01:26:44.51Z',
'platformShortName': 'GCOM-C',
'instrumentShortName': 'SGLI',
'sensorType': 'OPTICAL',
'operationalMode': 'NOMINAL',
'resolution': None,
'orbitNumber': 47,
'lastOrbitNumber': None,
'DayNight': None,
'illuminationAzimuthAngle': None,
'illuminationElevationAngle': None,
'multiExtentOf': '134.51026916503906 46.44524002075195 140.54034423828125 45.92348480224609 144.48358154296875 45.40235137939453 148.24114990234375 44.76785278320313 153.32365417480469 43.68489837646484 154.52767944335938 43.38881301879883 153.22018432617188 40.91696929931641 152.01185607910156 38.42909622192383 150.88957214355469 35.92721176147461 149.84219360351563 33.41301345825195 148.86044311523438 30.88793373107910 147.93641662597656 28.35320091247559 147.46324157714844 26.99820137023926 142.85005187988281 27.90709114074707 139.73326110839844 28.42703247070313 136.67523193359375 28.86391067504883 132.38002014160156 29.35588836669922 131.33270263671875 29.45441246032715 131.81683349609375 32.05686187744141 132.29971313476563 34.65885543823242 132.78254699707031 37.26024246215820 133.26670837402344 39.86090850830078 133.75375366210938 42.46072006225586 134.24545288085938 45.05959320068359 134.51026916503906 46.44524002075195',
'centerOf': '141.85800170898438 36.94295883178711',
'productFileName': 'https://gportal.jaxa.jp/download/standard/GCOM-C/GCOM-C.SGLI/L2.OCEAN.SST_/3/2023/01/01/GC1SG1_202301010122E04710_L2SG_SSTDK_3001.h5',
'productSize': 4194304,
'productDataFormatType': 'HDF5',
'productVersion': 3,
'quicklook': 'https://gportal.jaxa.jp/gpr/img/br/GC1SG1_202301010122E04710_L2SG_SSTDK_3001/GC1SG1_202301010122E04710_L2SG_SSTDK_3001.jpg',
'quicklook1': 'https://gportal.jaxa.jp/gpr/img/sb/GC1SG1_202301010122E04710_L2SG_SSTDK_3001/GC1SG1_202301010122E04710_L2SG_SSTDK_3001-000.jpg',
'thumbnail': 'https://gportal.jaxa.jp/gpr/img/thm/GC1SG1_202301010122E04710_L2SG_SSTDK_3001/GC1SG1_202301010122E04710_L2SG_SSTDK_3001_thm.jpg',
'datasetId': 10002002,
'totalQualityCode': 'Good',
'cloudCoverPercentage': 68,
'operatorComment': None,
'compressFlag': 1,
'physicalQuantity': 'SGLI SST',
'Resolution': '1km',
'browseImageSize': 813,
'parameterVersion': 1,
'algorithmVersion': 3,
'numberPixels': None,
'numberLines': None,
'numberBands': None,
'numberMissingData': None,
'sceneNumber': 10,
'startPathNumber': 47,
'endPathNumber': 47,
'startArgumentLat': None,
'endArgumentLat': None,
'mapProjection': None,
'mapDirection': None,
'orbitDirection': 'Descending',
'tileNo': None,
'channels': None,
'bandWidth': None,
'downlinkSegmentNumber': None,
'sensorOffPeriod': None,
'sceneCenterTime': '2023-01-01T01:24:20.73Z',
'startSubsatellitePosition': None,
'endSubsatellitePosition': None,
'ProcessTimeUnit': None,
'tileHNo': None,
'tileVNo': None,
'topicCategory': '-',
'organizationName': 'JAXA',
'pseq': 'EQ',
'hasProduct': True}
Let's convert the search results into a GeoDataFrame.
features = [product.to_dict(flatten_properties=True) for product in res.products()]
raw_gdf = gpd.GeoDataFrame.from_features(features, crs="EPSG:4326") # crs is necessary for GeoDataFrame.explore
raw_gdf.dropna(axis=1, inplace=True)
raw_gdf.head()
| geometry | identifier | acquisitionType | processingDate | processingLevel | ProductType | status | beginPosition | endPosition | platformShortName | ... | algorithmVersion | sceneNumber | startPathNumber | endPathNumber | orbitDirection | sceneCenterTime | topicCategory | organizationName | pseq | hasProduct | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | POLYGON ((134.51027 46.44524, 140.54034 45.923... | GC1SG1_202301010122E04710_L2SG_SSTDK_3001 | NOMINAL | 2023-01-01T15:20:47.00Z | L2 | S | ARCHIVED | 2023-01-01T01:21:56.94Z | 2023-01-01T01:26:44.51Z | GCOM-C | ... | 3 | 10 | 47 | 47 | Descending | 2023-01-01T01:24:20.73Z | - | JAXA | EQ | True |
| 1 | POLYGON ((131.72821 31.57977, 136.59933 31.066... | GC1SG1_202301010126J04711_L2SG_SSTDK_3001 | NOMINAL | 2023-01-01T15:20:48.00Z | L2 | S | ARCHIVED | 2023-01-01T01:26:09.34Z | 2023-01-01T01:30:56.92Z | GCOM-C | ... | 3 | 11 | 47 | 47 | Descending | 2023-01-01T01:28:33.13Z | - | JAXA | EQ | True |
| 2 | POLYGON ((134.50012 46.44913, 140.53572 45.927... | GC1SG1_202301010122E04710_L2SG_SSTDQ_3001 | NOMINAL | 2023-01-01T15:20:47.00Z | L2 | S | ARCHIVED | 2023-01-01T01:21:56.88Z | 2023-01-01T01:26:44.57Z | GCOM-C | ... | 3 | 10 | 47 | 47 | Descending | 2023-01-01T01:24:20.73Z | - | JAXA | EQ | True |
| 3 | POLYGON ((131.72015 31.58377, 136.59555 31.070... | GC1SG1_202301010126J04711_L2SG_SSTDQ_3001 | NOMINAL | 2023-01-01T15:20:49.00Z | L2 | S | ARCHIVED | 2023-01-01T01:26:09.28Z | 2023-01-01T01:30:56.97Z | GCOM-C | ... | 3 | 11 | 47 | 47 | Descending | 2023-01-01T01:28:33.13Z | - | JAXA | EQ | True |
| 4 | POLYGON ((150.12608 29.76472, 145.34557 29.249... | GC1SG1_202301011239J28503_L2SG_SSTNK_3001 | NOMINAL | 2023-01-02T03:12:50.00Z | L2 | S | ARCHIVED | 2023-01-01T12:39:08.53Z | 2023-01-01T12:43:56.11Z | GCOM-C | ... | 3 | 3 | 285 | 285 | Ascending | 2023-01-01T12:41:32.32Z | - | JAXA | EQ | True |
5 rows × 41 columns
Filter products by specific conditions¶
There are too many columns, so we will remove columns that have the same value in all rows.
nunique = raw_gdf.nunique()
nunique[nunique > 1]
geometry 206 identifier 206 processingDate 155 beginPosition 206 endPosition 206 orbitNumber 59 multiExtentOf 206 centerOf 206 productFileName 206 productSize 59 quicklook 206 quicklook1 206 thumbnail 206 cloudCoverPercentage 58 Resolution 2 browseImageSize 172 sceneNumber 4 startPathNumber 59 endPathNumber 59 orbitDirection 2 sceneCenterTime 103 dtype: int64
Furthermore, we will select only the necessary columns from within these columns.
gdf = raw_gdf[
[
"geometry",
"identifier",
"Resolution",
"beginPosition",
"endPosition",
"orbitNumber",
"sceneNumber",
"orbitDirection",
"cloudCoverPercentage",
"quicklook",
"productFileName",
]
]
gdf.head()
| geometry | identifier | Resolution | beginPosition | endPosition | orbitNumber | sceneNumber | orbitDirection | cloudCoverPercentage | quicklook | productFileName | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | POLYGON ((134.51027 46.44524, 140.54034 45.923... | GC1SG1_202301010122E04710_L2SG_SSTDK_3001 | 1km | 2023-01-01T01:21:56.94Z | 2023-01-01T01:26:44.51Z | 47 | 10 | Descending | 68 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 1 | POLYGON ((131.72821 31.57977, 136.59933 31.066... | GC1SG1_202301010126J04711_L2SG_SSTDK_3001 | 1km | 2023-01-01T01:26:09.34Z | 2023-01-01T01:30:56.92Z | 47 | 11 | Descending | 71 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 2 | POLYGON ((134.50012 46.44913, 140.53572 45.927... | GC1SG1_202301010122E04710_L2SG_SSTDQ_3001 | 250m | 2023-01-01T01:21:56.88Z | 2023-01-01T01:26:44.57Z | 47 | 10 | Descending | 68 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 3 | POLYGON ((131.72015 31.58377, 136.59555 31.070... | GC1SG1_202301010126J04711_L2SG_SSTDQ_3001 | 250m | 2023-01-01T01:26:09.28Z | 2023-01-01T01:30:56.97Z | 47 | 11 | Descending | 71 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 4 | POLYGON ((150.12608 29.76472, 145.34557 29.249... | GC1SG1_202301011239J28503_L2SG_SSTNK_3001 | 1km | 2023-01-01T12:39:08.53Z | 2023-01-01T12:43:56.11Z | 285 | 3 | Ascending | 24 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
Filter by the condition: "high resolution (250m)" and "low cloud cover (< 20%)".
filtered_gdf = gdf[(gdf["Resolution"] == "250m") & (gdf["cloudCoverPercentage"] < 20)]
filtered_gdf
| geometry | identifier | Resolution | beginPosition | endPosition | orbitNumber | sceneNumber | orbitDirection | cloudCoverPercentage | quicklook | productFileName | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 7 | POLYGON ((152.97382 14.89464, 148.68237 14.336... | GC1SG1_202301011235E28502_L2SG_SSTNQ_3001 | 250m | 2023-01-01T12:34:56.22Z | 2023-01-01T12:39:43.91Z | 285 | 2 | Ascending | 5 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 15 | POLYGON ((159.65588 14.89468, 155.36447 14.336... | GC1SG1_202301021208L27602_L2SG_SSTNQ_3001 | 250m | 2023-01-02T12:08:12.82Z | 2023-01-02T12:13:00.51Z | 276 | 2 | Ascending | 2 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 26 | POLYGON ((144.94542 29.76209, 140.16090 29.246... | GC1SG1_202301041300E29203_L2SG_SSTNQ_3001 | 250m | 2023-01-04T12:59:55.00Z | 2023-01-04T13:04:42.69Z | 292 | 3 | Ascending | 16 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 27 | POLYGON ((147.78401 14.89459, 143.49245 14.336... | GC1SG1_202301041256A29202_L2SG_SSTNQ_3001 | 250m | 2023-01-04T12:55:42.75Z | 2023-01-04T13:00:30.44Z | 292 | 2 | Ascending | 9 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 35 | POLYGON ((154.46617 14.89463, 150.17471 14.336... | GC1SG1_202301051229F28302_L2SG_SSTNQ_3001 | 250m | 2023-01-05T12:28:59.25Z | 2023-01-05T12:33:46.94Z | 283 | 2 | Ascending | 15 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 43 | POLYGON ((161.14854 14.89462, 156.85713 14.336... | GC1SG1_202301061202M27402_L2SG_SSTNQ_3001 | 250m | 2023-01-06T12:02:15.75Z | 2023-01-06T12:07:03.44Z | 274 | 2 | Ascending | 17 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 70 | POLYGON ((141.25185 29.76169, 136.46707 29.245... | GC1SG1_202301111315A29703_L2SG_SSTNQ_3001 | 250m | 2023-01-11T13:14:43.54Z | 2023-01-11T13:19:31.22Z | 297 | 3 | Ascending | 10 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 71 | POLYGON ((144.08961 14.89424, 139.79781 14.336... | GC1SG1_202301111310S29702_L2SG_SSTNQ_3001 | 250m | 2023-01-11T13:10:31.28Z | 2023-01-11T13:15:18.97Z | 297 | 2 | Ascending | 16 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 78 | POLYGON ((147.93448 29.76200, 143.14995 29.246... | GC1SG1_202301121248F28803_L2SG_SSTNQ_3001 | 250m | 2023-01-12T12:47:59.80Z | 2023-01-12T12:52:47.48Z | 288 | 3 | Ascending | 16 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 79 | POLYGON ((150.77228 14.89435, 146.48073 14.336... | GC1SG1_202301121244B28802_L2SG_SSTNQ_3001 | 250m | 2023-01-12T12:43:47.54Z | 2023-01-12T12:48:35.23Z | 288 | 2 | Ascending | 14 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 87 | POLYGON ((157.45547 14.89429, 153.16399 14.336... | GC1SG1_202301131217H27902_L2SG_SSTNQ_3001 | 250m | 2023-01-13T12:17:03.78Z | 2023-01-13T12:21:51.47Z | 279 | 2 | Ascending | 9 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 115 | POLYGON ((158.95430 14.89438, 154.66281 14.336... | GC1SG1_202301171211H27702_L2SG_SSTNQ_3001 | 250m | 2023-01-17T12:11:05.06Z | 2023-01-17T12:15:52.75Z | 277 | 2 | Ascending | 19 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 127 | POLYGON ((147.08699 14.89434, 142.79532 14.336... | GC1SG1_202301191258T29302_L2SG_SSTNQ_3001 | 250m | 2023-01-19T12:58:33.80Z | 2023-01-19T13:03:21.49Z | 293 | 2 | Ascending | 12 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 134 | POLYGON ((150.93350 29.76196, 146.14900 29.246... | GC1SG1_202301201236G28403_L2SG_SSTNQ_3001 | 250m | 2023-01-20T12:36:01.97Z | 2023-01-20T12:40:49.65Z | 284 | 3 | Ascending | 18 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 135 | POLYGON ((153.77135 14.89437, 149.47983 14.336... | GC1SG1_202301201232C28402_L2SG_SSTNQ_3001 | 250m | 2023-01-20T12:31:49.71Z | 2023-01-20T12:36:37.40Z | 284 | 2 | Ascending | 8 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 143 | POLYGON ((160.45599 14.89434, 156.16451 14.336... | GC1SG1_202301211205H27502_L2SG_SSTNQ_3001 | 250m | 2023-01-21T12:05:05.60Z | 2023-01-21T12:09:53.29Z | 275 | 2 | Ascending | 18 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 156 | POLYGON ((152.43758 29.76186, 147.65305 29.246... | GC1SG1_202301241230G28203_L2SG_SSTNQ_3001 | 250m | 2023-01-24T12:30:01.93Z | 2023-01-24T12:34:49.62Z | 282 | 3 | Ascending | 16 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 157 | POLYGON ((155.27483 14.89417, 150.98328 14.336... | GC1SG1_202301241226C28202_L2SG_SSTNQ_3001 | 250m | 2023-01-24T12:25:49.68Z | 2023-01-24T12:30:37.36Z | 282 | 2 | Ascending | 14 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 168 | POLYGON ((140.56821 29.76042, 135.78242 29.244... | GC1SG1_202301261317S29803_L2SG_SSTNQ_3001 | 250m | 2023-01-26T13:17:31.61Z | 2023-01-26T13:22:19.30Z | 298 | 3 | Ascending | 16 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 169 | POLYGON ((143.40529 14.89358, 139.11232 14.335... | GC1SG1_202301261313N29802_L2SG_SSTNQ_3001 | 250m | 2023-01-26T13:13:19.35Z | 2023-01-26T13:18:07.04Z | 298 | 2 | Ascending | 14 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 177 | POLYGON ((150.08115 14.89367, 145.78853 14.336... | GC1SG1_202301271246U28902_L2SG_SSTNQ_3001 | 250m | 2023-01-27T12:46:37.16Z | 2023-01-27T12:51:24.85Z | 289 | 2 | Ascending | 8 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 185 | POLYGON ((156.75751 14.89375, 152.46500 14.336... | GC1SG1_202301281220E28002_L2SG_SSTNQ_3001 | 250m | 2023-01-28T12:19:54.98Z | 2023-01-28T12:24:42.66Z | 280 | 2 | Ascending | 6 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 196 | POLYGON ((142.03714 29.76054, 137.25154 29.244... | GC1SG1_202301301311V29603_L2SG_SSTNQ_3001 | 250m | 2023-01-30T13:11:39.70Z | 2023-01-30T13:16:27.39Z | 296 | 3 | Ascending | 18 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 197 | POLYGON ((144.87433 14.89359, 140.58154 14.335... | GC1SG1_202301301307R29602_L2SG_SSTNQ_3001 | 250m | 2023-01-30T13:07:27.45Z | 2023-01-30T13:12:15.14Z | 296 | 2 | Ascending | 12 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
| 205 | POLYGON ((151.55061 14.89376, 147.25812 14.336... | GC1SG1_202301311241A28702_L2SG_SSTNQ_3001 | 250m | 2023-01-31T12:40:45.17Z | 2023-01-31T12:45:32.86Z | 287 | 2 | Ascending | 4 | https://gportal.jaxa.jp/gpr/img/br/GC1SG1_2023... | https://gportal.jaxa.jp/download/standard/GCOM... |
Visualize the results on an interactive map¶
Visualize the product coverage areas and the AOI using GeoDataFrame.explore.
import folium
map = filtered_gdf.explore("identifier", legend=False, popup=True, style_kwds={"fillOpacity": 0.1})
folium.Rectangle(bounds=[(aoi[1], aoi[0]), (aoi[3], aoi[2])]).add_to(map)
map
Products with orbit numbers 282-288 and scene number 3 covers the entire AOI.
Let's take a look at their browse images.
from urllib.request import urlopen
import matplotlib.pyplot as plt
import numpy as np
import shapely.geometry
target_gdf = filtered_gdf[filtered_gdf.covers(shapely.geometry.box(*aoi))]
fig, axs = plt.subplots(1, 3, figsize=(18, 9))
for (i, row), ax in zip(target_gdf.iterrows(), axs):
with urlopen(row["quicklook"]) as f:
img = plt.imread(f, format="jpg")
ax.imshow(np.flip(img))
ax.set_axis_off()
ax.set_title(row["identifier"])
The left one seems to be good.