Last active
November 6, 2019 04:50
-
-
Save alukach/87044c6ca8cca3eebb73b8351581df93 to your computer and use it in GitHub Desktop.
Convert Planet product bundles description into JSON
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"bundles": { | |
"analytic": { | |
"name": "Analytic Radiance", | |
"description": "Orthorectified product, calibrated to at-sensor radiance", | |
"assets": { | |
"Landsat8L1G": [ | |
"analytic_b1", | |
"analytic_b2", | |
"analytic_b3", | |
"analytic_b4", | |
"analytic_b5", | |
"analytic_b6", | |
"analytic_b7", | |
"analytic_b8", | |
"analytic_b9", | |
"analytic_b10", | |
"analytic_b11", | |
"analytic_bqa", | |
"metadata_txt" | |
], | |
"PSOrthoTile": [ | |
"analytic", | |
"udm", | |
"analytic_xml" | |
], | |
"PSScene3Band": [ | |
"analytic", | |
"analytic_xml", | |
"udm" | |
], | |
"PSScene4Band": [ | |
"analytic", | |
"analytic_xml", | |
"udm" | |
], | |
"REOrthoTile": [ | |
"analytic", | |
"analytic_xml", | |
"udm" | |
], | |
"Sentinel1": [ | |
"ortho_analytic_vv", | |
"ortho_analytic_vh" | |
], | |
"Sentinel2L1C": [ | |
"analytic_b1", | |
"analytic_b2", | |
"analytic_b3", | |
"analytic_b4", | |
"analytic_b5", | |
"analytic_b6", | |
"analytic_b7", | |
"analytic_b8", | |
"analytic_b8a", | |
"analytic_b9", | |
"analytic_b10", | |
"analytic_b11", | |
"analytic_b12", | |
"metadata_aux" | |
], | |
"SkySatScene": [ | |
"ortho_analytic", | |
"ortho_analytic_udm" | |
], | |
"SkySatCollect": [ | |
"ortho_analytic", | |
"ortho_analytic_udm" | |
] | |
} | |
}, | |
"analytic_udm2": { | |
"name": "Analytic Radiance with UDM2", | |
"description": "Orthorectified product, calibrated to at-sensor radiance. Includes udm2.", | |
"assets": { | |
"PSOrthoTile": [ | |
"analytic", | |
"udm", | |
"udm2", | |
"analytic_xml" | |
], | |
"PSScene4Band": [ | |
"analytic", | |
"analytic_xml", | |
"udm", | |
"udm2" | |
], | |
"SkySatScene": [ | |
"ortho_analytic", | |
"ortho_analytic_udm", | |
"ortho_analytic_udm2" | |
], | |
"SkySatCollect": [ | |
"ortho_analytic", | |
"ortho_analytic_udm", | |
"ortho_analytic_udm2" | |
] | |
} | |
}, | |
"visual": { | |
"name": "Visual", | |
"description": "Orthorectified product, visually enhanced for optimal appearance", | |
"assets": { | |
"Landsat8L1G": [ | |
"visual" | |
], | |
"PSOrthoTile": [ | |
"visual", | |
"visual_xml" | |
], | |
"PSScene3Band": [ | |
"visual", | |
"visual_xml" | |
], | |
"REOrthoTile": [ | |
"visual", | |
"visual_xml" | |
], | |
"Sentinel2L1C": [ | |
"visual" | |
], | |
"SkySatCollect": [ | |
"ortho_visual" | |
], | |
"SkySatScene": [ | |
"ortho_visual" | |
] | |
} | |
}, | |
"uncalibrated_dn": { | |
"name": "Uncalibrated DN", | |
"description": "Orthorectified product, non-radiometrically-calibrated, raw digital number", | |
"assets": { | |
"PSOrthoTile": [ | |
"analytic_dn", | |
"udm", | |
"analytic_dn_xml" | |
], | |
"PSScene3Band": [ | |
"analytic_dn", | |
"analytic_dn_xml", | |
"udm" | |
], | |
"PSScene4Band": [ | |
"analytic_dn", | |
"analytic_dn_xml", | |
"udm" | |
], | |
"SkySatCollect": [ | |
"ortho_analytic_dn", | |
"ortho_analytic_udm" | |
], | |
"SkySatScene": [ | |
"ortho_analytic_dn", | |
"ortho_analytic_udm" | |
] | |
} | |
}, | |
"uncalibrated_dn_udm2": { | |
"name": "Uncalibrated DN with UDM2", | |
"description": "Orthorectified product, non-radiometrically-calibrated, raw digital number. Includes udm2.", | |
"assets": { | |
"PSOrthoTile": [ | |
"analytic_dn", | |
"analytic_dn_xml", | |
"udm", | |
"udm2" | |
], | |
"PSScene4Band": [ | |
"analytic_dn", | |
"analytic_dn_xml", | |
"udm", | |
"udm2" | |
], | |
"SkySatCollect": [ | |
"ortho_analytic_dn", | |
"ortho_analytic_udm", | |
"ortho_analytic_udm2" | |
], | |
"SkySatScene": [ | |
"ortho_analytic_dn", | |
"ortho_analytic_udm", | |
"ortho_analytic_udm2" | |
] | |
} | |
}, | |
"basic_analytic": { | |
"name": "Non-Orthorectified Analytic Radiance", | |
"description": "Non-orthorectified, calibrated to at-sensor radiance", | |
"assets": { | |
"PSScene3Band": [ | |
"basic_analytic", | |
"basic_udm", | |
"basic_analytic_rpc", | |
"basic_analytic_xml" | |
], | |
"PSScene4Band": [ | |
"basic_analytic", | |
"basic_udm", | |
"basic_analytic_rpc", | |
"basic_analytic_xml" | |
], | |
"REScene": [ | |
"basic_analytic_b1", | |
"basic_analytic_b2", | |
"basic_analytic_b3", | |
"basic_analytic_b4", | |
"basic_analytic_b5", | |
"basic_analytic_xml", | |
"basic_analytic_rpc", | |
"basic_udm", | |
"basic_analytic_sci", | |
"browse" | |
], | |
"SkySatScene": [ | |
"basic_analytic", | |
"basic_analytic_rpc" | |
] | |
} | |
}, | |
"basic_analytic_udm2": { | |
"name": "Non-Orthorectified Analytic Radiance with UDM2", | |
"description": "Non-orthorectified, calibrated to at-sensor radiance. Includes udm2.", | |
"assets": { | |
"PSScene4Band": [ | |
"basic_analytic", | |
"basic_udm", | |
"basic_udm2", | |
"basic_analytic_rpc", | |
"basic_analytic_xml" | |
], | |
"SkySatScene": [ | |
"basic_analytic", | |
"basic_analytic_rpc" | |
] | |
} | |
}, | |
"basic_uncalibrated_dn": { | |
"name": "Non-Orthorectified, Uncalibrated DN", | |
"description": "Non-orthorectified, non-radiometrically-calibrated, raw digital number", | |
"assets": { | |
"PSScene3Band": [ | |
"basic_analytic_dn", | |
"basic_analytic_dn_xml", | |
"basic_udm", | |
"basic_analytic_dn_rpc" | |
], | |
"PSScene4Band": [ | |
"basic_analytic_dn", | |
"basic_analytic_dn_xml", | |
"basic_udm", | |
"basic_analytic_rpc" | |
], | |
"SkySatScene": [ | |
"basic_analytic_dn", | |
"basic_analytic_dn_rpc" | |
] | |
} | |
}, | |
"basic_uncalibrated_dn_udm2": { | |
"name": "Non-Orthorectified, Uncalibrated DN with UDM2", | |
"description": "Non-orthorectified, non-radiometrically-calibrated, raw digital number. Includes udm2.", | |
"assets": { | |
"PSScene4Band": [ | |
"basic_analytic_dn", | |
"basic_analytic_dn_xml", | |
"basic_udm", | |
"basic_udm2", | |
"basic_analytic_rpc" | |
], | |
"SkySatScene": [ | |
"basic_analytic_dn", | |
"basic_analytic_dn_rpc" | |
] | |
} | |
}, | |
"analytic_sr": { | |
"name": "Analytic Surface Reflectance", | |
"description": "Orthorectified product, radiometrically calibrated and atmospherically corrected to surface reflectance", | |
"assets": { | |
"PSScene4Band": [ | |
"analytic_sr", | |
"udm", | |
"analytic_xml" | |
], | |
"MOD09GQ": [ | |
"analytic_num_observations", | |
"analytic_orbit_pnt", | |
"analytic_granule_pnt", | |
"analytic_sur_refl_b01", | |
"analytic_sur_refl_b02", | |
"analytic_qc_250m", | |
"analytic_obscov", | |
"analytic_iobs_res" | |
], | |
"MYD09GQ": [ | |
"analytic_num_observations", | |
"analytic_orbit_pnt", | |
"analytic_granule_pnt", | |
"analytic_sur_refl_b01", | |
"analytic_sur_refl_b02", | |
"analytic_qc_250m", | |
"analytic_obscov", | |
"analytic_iobs_res" | |
], | |
"MOD09GA": [ | |
"analytic_num_observations_500m", | |
"analytic_num_observations_1km", | |
"analytic_state_1km", | |
"analytic_sensor_zenith", | |
"analytic_sensor_azimuth", | |
"analytic_range", | |
"analytic_solar_zenith", | |
"analytic_solar_azimuth", | |
"analytic_gflags", | |
"analytic_orbit_pnt", | |
"analytic_granule_pnt", | |
"analytic_sur_refl_b01", | |
"analytic_sur_refl_b02", | |
"analytic_sur_refl_b03", | |
"analytic_sur_refl_b04", | |
"analytic_sur_refl_b05", | |
"analytic_sur_refl_b06", | |
"analytic_sur_refl_b07", | |
"analytic_qc_500m", | |
"analytic_obscov_500m", | |
"analytic_iobs_res", | |
"analytic_q_scan" | |
], | |
"MYD09GA": [ | |
"analytic_num_observations_500m", | |
"analytic_num_observations_1km", | |
"analytic_state_1km", | |
"analytic_sensor_zenith", | |
"analytic_sensor_azimuth", | |
"analytic_range", | |
"analytic_solar_zenith", | |
"analytic_solar_azimuth", | |
"analytic_gflags", | |
"analytic_orbit_pnt", | |
"analytic_granule_pnt", | |
"analytic_sur_refl_b01", | |
"analytic_sur_refl_b02", | |
"analytic_sur_refl_b03", | |
"analytic_sur_refl_b04", | |
"analytic_sur_refl_b05", | |
"analytic_sur_refl_b06", | |
"analytic_sur_refl_b07", | |
"analytic_qc_500m", | |
"analytic_obscov_500m", | |
"analytic_iobs_res", | |
"analytic_q_scan" | |
] | |
} | |
}, | |
"analytic_sr_udm2": { | |
"name": "Analytic Surface Reflectance with UDM2", | |
"description": "Orthorectified product, radiometrically calibrated and atmospherically corrected to surface reflectance. Includes udm2.", | |
"assets": { | |
"PSScene4Band": [ | |
"analytic_sr", | |
"analytic_xml", | |
"udm", | |
"udm2" | |
] | |
} | |
}, | |
"basic_uncalibrated_dn_nitf": { | |
"name": "Non-Orthorectified, Uncalibrated DN NITF", | |
"description": "Non-orthorectified, non-radiometrically-calibrated, raw digital number in NITF format", | |
"assets": { | |
"PSScene4Band": [ | |
"basic_analytic_dn_nitf", | |
"basic_analytic_dn_xml_nitf", | |
"basic_analytic_dn_rpc_nitf", | |
"basic_udm" | |
] | |
} | |
}, | |
"basic_uncalibrated_dn_nitf_udm2": { | |
"name": "Non-Orthorectified, Uncalibrated DN NITF with UDM2", | |
"description": "Non-orthorectified, non-radiometrically-calibrated, raw digital number in NITF format. Includes udm2.", | |
"assets": { | |
"PSScene4Band": [ | |
"basic_analytic_dn_nitf", | |
"basic_analytic_dn_xml_nitf", | |
"basic_analytic_dn_rpc_nitf", | |
"basic_udm", | |
"basic_udm2" | |
] | |
} | |
}, | |
"basic_analytic_nitf": { | |
"name": "Non-Orthorectified Analytic Radiance NITF", | |
"description": "Non-orthorectified, calibrated to at-sensor radiance, in NITF format", | |
"assets": { | |
"PSScene4Band": [ | |
"basic_analytic_nitf", | |
"basic_analytic_rpc_nitf", | |
"basic_analytic_xml_nitf", | |
"basic_udm" | |
], | |
"REScene": [ | |
"basic_analytic_b1_nitf", | |
"basic_analytic_b2_nitf", | |
"basic_analytic_b3_nitf", | |
"basic_analytic_b4_nitf", | |
"basic_analytic_b5_nitf", | |
"basic_analytic_xml_nitf", | |
"basic_analytic_rpc", | |
"basic_udm", | |
"basic_analytic_sci", | |
"browse" | |
] | |
} | |
}, | |
"basic_analytic_nitf_udm2": { | |
"name": "Non-Orthorectified Analytic Radiance NITF with UDM2", | |
"description": "Non-orthorectified, calibrated to at-sensor radiance, in NITF format. Includes udm2.", | |
"assets": { | |
"PSScene4Band": [ | |
"basic_analytic_nitf", | |
"basic_analytic_rpc_nitf", | |
"basic_analytic_xml_nitf", | |
"basic_udm", | |
"basic_udm2" | |
] | |
} | |
}, | |
"basic_panchromatic": { | |
"name": "Non-orthorectified, scaled radiance image", | |
"description": "Non-orthorectified radiometrically-calibrated panchromatic imagery", | |
"assets": { | |
"SkySatScene": [ | |
"basic_panchromatic", | |
"basic_panchromatic_rpc" | |
] | |
} | |
}, | |
"basic_panchromatic_dn": { | |
"name": "Non-orthorectified panchromatic imagery, non-radiometrically calibrated, raw digital number", | |
"description": "Unorthorectified panchromatic imagery, non-radiometrically calibrated, raw digital number", | |
"assets": { | |
"SkySatScene": [ | |
"basic_panchromatic_dn", | |
"basic_panchromatic_dn_rpc" | |
] | |
} | |
}, | |
"panchromatic": { | |
"name": "Panchromatic", | |
"description": "Orthorectified radiometrically-calibrated panchromatic image stored as 16-bit scaled radiance", | |
"assets": { | |
"SkySatCollect": [ | |
"ortho_panchromatic", | |
"ortho_panchromatic_udm" | |
], | |
"SkySatScene": [ | |
"ortho_panchromatic", | |
"ortho_panchromatic_udm" | |
] | |
} | |
}, | |
"panchromatic_dn": { | |
"name": "Panchromatic DN", | |
"description": "Orthorectified panchromatic imagery, non-radiometrically calibrated, raw digital number", | |
"assets": { | |
"SkySatCollect": [ | |
"ortho_panchromatic_dn", | |
"ortho_panchromatic_udm" | |
], | |
"SkySatScene": [ | |
"ortho_panchromatic_dn", | |
"ortho_panchromatic_udm" | |
] | |
} | |
}, | |
"panchromatic_dn_udm2": { | |
"name": "Panchromatic DN with UDM2", | |
"description": "Orthorectified panchromatic imagery, non-radiometrically calibrated, raw digital number", | |
"assets": { | |
"SkySatCollect": [ | |
"ortho_panchromatic_dn", | |
"ortho_panchromatic_udm", | |
"ortho_panchromatic_udm2" | |
], | |
"SkySatScene": [ | |
"ortho_panchromatic_dn", | |
"ortho_panchromatic_udm", | |
"ortho_panchromatic_udm2" | |
] | |
} | |
}, | |
"pansharpened": { | |
"name": "Pansharpened", | |
"description": "Orthorectifed, pan-sharpened imagery, non-radiometrically calibrated, raw digital number", | |
"assets": { | |
"SkySatCollect": [ | |
"ortho_pansharpened", | |
"ortho_pansharpened_udm" | |
], | |
"SkySatScene": [ | |
"ortho_pansharpened", | |
"ortho_pansharpened_udm" | |
] | |
} | |
}, | |
"pansharpened_udm2": { | |
"name": "Pansharpened with UDM2", | |
"description": "Orthorectifed, pan-sharpened imagery, non-radiometrically calibrated, raw digital number", | |
"assets": { | |
"SkySatCollect": [ | |
"ortho_pansharpened", | |
"ortho_pansharpened_udm", | |
"ortho_pansharpened_udm2" | |
], | |
"SkySatScene": [ | |
"ortho_pansharpened", | |
"ortho_pansharpened_udm", | |
"ortho_pansharpened_udm2" | |
] | |
} | |
}, | |
"basic_l1a_dn": { | |
"name": "Non-Orthorectified, Level 1A Uncalibrated DN", | |
"description": "Non-orthorectified, non-radiometrically-calibrated, raw digital number, Level 1A", | |
"assets": { | |
"SkySatScene": [ | |
"basic_l1a_panchromatic_dn", | |
"basic_l1a_panchromatic_dn_rpc" | |
] | |
} | |
}, | |
"all": { | |
"name": "All assets", | |
"description": "All assets that can be produced for an item", | |
"assets": { | |
"Landsat8L1G": [ | |
"analytic_b1", | |
"analytic_b2", | |
"analytic_b3", | |
"analytic_b4", | |
"analytic_b5", | |
"analytic_b6", | |
"analytic_b7", | |
"analytic_b8", | |
"analytic_b9", | |
"analytic_b10", | |
"analytic_b11", | |
"analytic_bqa", | |
"metadata_txt", | |
"visual" | |
], | |
"MOD09GA": [ | |
"analytic_num_observations_500m", | |
"analytic_num_observations_1km", | |
"analytic_state_1km", | |
"analytic_sensor_zenith", | |
"analytic_sensor_azimuth", | |
"analytic_range", | |
"analytic_solar_zenith", | |
"analytic_solar_azimuth", | |
"analytic_gflags", | |
"analytic_orbit_pnt", | |
"analytic_granule_pnt", | |
"analytic_sur_refl_b01", | |
"analytic_sur_refl_b02", | |
"analytic_sur_refl_b03", | |
"analytic_sur_refl_b04", | |
"analytic_sur_refl_b05", | |
"analytic_sur_refl_b06", | |
"analytic_sur_refl_b07", | |
"analytic_qc_500m", | |
"analytic_obscov_500m", | |
"analytic_iobs_res", | |
"analytic_q_scan" | |
], | |
"MOD09GQ": [ | |
"analytic_num_observations", | |
"analytic_orbit_pnt", | |
"analytic_granule_pnt", | |
"analytic_sur_refl_b01", | |
"analytic_sur_refl_b02", | |
"analytic_qc_250m", | |
"analytic_obscov", | |
"analytic_iobs_res" | |
], | |
"MYD09GA": [ | |
"analytic_num_observations_500m", | |
"analytic_num_observations_1km", | |
"analytic_state_1km", | |
"analytic_sensor_zenith", | |
"analytic_sensor_azimuth", | |
"analytic_range", | |
"analytic_solar_zenith", | |
"analytic_solar_azimuth", | |
"analytic_gflags", | |
"analytic_orbit_pnt", | |
"analytic_granule_pnt", | |
"analytic_sur_refl_b01", | |
"analytic_sur_refl_b02", | |
"analytic_sur_refl_b03", | |
"analytic_sur_refl_b04", | |
"analytic_sur_refl_b05", | |
"analytic_sur_refl_b06", | |
"analytic_sur_refl_b07", | |
"analytic_qc_500m", | |
"analytic_obscov_500m", | |
"analytic_iobs_res", | |
"analytic_q_scan" | |
], | |
"MYD09GQ": [ | |
"analytic_num_observations", | |
"analytic_orbit_pnt", | |
"analytic_granule_pnt", | |
"analytic_sur_refl_b01", | |
"analytic_sur_refl_b02", | |
"analytic_qc_250m", | |
"analytic_obscov", | |
"analytic_iobs_res" | |
], | |
"PSOrthoTile": [ | |
"analytic_dn", | |
"analytic_dn_xml", | |
"udm", | |
"analytic", | |
"analytic_xml", | |
"visual", | |
"visual_xml" | |
], | |
"PSScene3Band": [ | |
"analytic_dn", | |
"analytic_dn_xml", | |
"udm", | |
"analytic", | |
"analytic_xml", | |
"basic_analytic", | |
"basic_udm", | |
"basic_analytic_rpc", | |
"basic_analytic_xml", | |
"visual", | |
"visual_xml", | |
"basic_analytic_dn", | |
"basic_analytic_dn_rpc", | |
"basic_analytic_dn_xml" | |
], | |
"PSScene4Band": [ | |
"basic_udm", | |
"analytic_dn", | |
"analytic_dn_xml", | |
"udm", | |
"analytic", | |
"analytic_xml", | |
"basic_analytic", | |
"basic_analytic_rpc", | |
"basic_analytic_xml", | |
"basic_analytic_dn", | |
"basic_analytic_dn_xml", | |
"analytic_sr" | |
], | |
"REOrthoTile": [ | |
"analytic", | |
"analytic_xml", | |
"udm", | |
"visual", | |
"visual_xml" | |
], | |
"REScene": [ | |
"basic_analytic_rpc", | |
"basic_udm", | |
"basic_analytic_sci", | |
"browse", | |
"basic_analytic_b1", | |
"basic_analytic_b2", | |
"basic_analytic_b3", | |
"basic_analytic_b4", | |
"basic_analytic_b5", | |
"basic_analytic_xml" | |
], | |
"Sentinel1": [ | |
"ortho_analytic_vv", | |
"ortho_analytic_vh" | |
], | |
"Sentinel2L1C": [ | |
"analytic_b1", | |
"analytic_b2", | |
"analytic_b3", | |
"analytic_b4", | |
"analytic_b5", | |
"analytic_b6", | |
"analytic_b7", | |
"analytic_b8", | |
"analytic_b8a", | |
"analytic_b9", | |
"analytic_b10", | |
"analytic_b11", | |
"analytic_b12", | |
"metadata_aux", | |
"visual" | |
], | |
"SkySatCollect": [ | |
"ortho_analytic_dn", | |
"ortho_analytic_udm", | |
"ortho_panchromatic", | |
"ortho_panchromatic_dn", | |
"ortho_panchromatic_udm", | |
"ortho_visual", | |
"ortho_pansharpened", | |
"ortho_pansharpened_udm", | |
"ortho_analytic" | |
], | |
"SkySatScene": [ | |
"ortho_analytic", | |
"ortho_analytic_udm", | |
"ortho_visual", | |
"ortho_analytic_dn", | |
"ortho_panchromatic", | |
"ortho_panchromatic_dn", | |
"ortho_panchromatic_udm", | |
"basic_panchromatic", | |
"basic_panchromatic_dn", | |
"basic_panchromatic_dn_rpc", | |
"basic_analytic", | |
"basic_analytic_dn", | |
"basic_analytic_dn_rpc", | |
"ortho_pansharpened", | |
"ortho_pansharpened_udm" | |
] | |
} | |
}, | |
"all_udm2": { | |
"name": "All assets with UDM2", | |
"description": "All assets that can be produced for an item. Includes udm2.", | |
"assets": { | |
"PSOrthoTile": [ | |
"analytic_dn", | |
"analytic_dn_xml", | |
"udm", | |
"udm2", | |
"analytic", | |
"analytic_xml", | |
"visual", | |
"visual_xml" | |
], | |
"PSScene4Band": [ | |
"basic_udm", | |
"basic_udm2", | |
"analytic_dn", | |
"analytic_dn_xml", | |
"udm", | |
"udm2", | |
"analytic", | |
"analytic_xml", | |
"basic_analytic", | |
"basic_analytic_rpc", | |
"basic_analytic_xml", | |
"basic_analytic_dn", | |
"basic_analytic_dn_xml", | |
"analytic_sr" | |
], | |
"SkySatCollect": [ | |
"ortho_panchromatic", | |
"ortho_panchromatic_dn", | |
"ortho_panchromatic_udm", | |
"ortho_panchromatic_udm2", | |
"ortho_pansharpened", | |
"ortho_pansharpened_udm", | |
"ortho_pansharpened_udm2", | |
"ortho_visual", | |
"ortho_analytic", | |
"ortho_analytic_dn", | |
"ortho_analytic_udm", | |
"ortho_analytic_udm2" | |
], | |
"SkySatScene": [ | |
"basic_analytic", | |
"basic_analytic_dn", | |
"basic_analytic_dn_rpc", | |
"basic_panchromatic", | |
"basic_panchromatic_dn", | |
"basic_panchromatic_dn_rpc", | |
"basic_panchromatic_udm2", | |
"ortho_panchromatic", | |
"ortho_panchromatic_dn", | |
"ortho_panchromatic_udm", | |
"ortho_panchromatic_udm2", | |
"ortho_pansharpened", | |
"ortho_pansharpened_udm", | |
"ortho_pansharpened_udm2", | |
"ortho_visual", | |
"ortho_analytic", | |
"ortho_analytic_dn", | |
"ortho_analytic_udm", | |
"ortho_analytic_udm2" | |
] | |
} | |
} | |
}, | |
"version": "2019-09-25" | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json | |
import re | |
import requests | |
from bs4 import BeautifulSoup | |
if __name__ == "__main__": | |
url = "https://developers.planet.com/docs/orders/product-bundles-reference/" | |
html = requests.get(url).text | |
soup = BeautifulSoup(html, "html.parser") | |
bundles = {} | |
for detail in soup.find_all("details"): | |
bundle_id = detail.find("summary").text | |
bundle_name = detail.find_next("h4").text | |
bundle_desc = ( | |
detail.find_next("p").find_next("p").text | |
) # Ignore first (empty) p-tag | |
for item_type_node in detail.select("tr td:not([align=right])"): | |
item_type = item_type_node.text | |
for asset_type_node in item_type_node.find_next_sibling(): | |
if not isinstance(asset_type_node, str): | |
continue | |
bundles.setdefault( | |
bundle_id, | |
{"name": bundle_name, "description": bundle_desc, "assets": {}}, | |
)["assets"].setdefault(item_type, []).append(asset_type_node) | |
print( | |
json.dumps( | |
{ | |
"bundles": bundles, | |
"version": soup.find("em", text=re.compile("last updated: .*")) | |
.text.split(":") | |
.pop() | |
.strip(), | |
} | |
) | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment