diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 9cae24e..57d8517 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -10,12 +10,12 @@ on: - master # This job installs dependencies, build the book, and pushes it to `gh-pages` jobs: - build-and-deploy-book: + build-and-deploy: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest] - python-version: [3.9] + python-version: ["3.12"] steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/maxar_data_catalog.yml b/.github/workflows/maxar_data_catalog.yml index c63987b..978bd79 100644 --- a/.github/workflows/maxar_data_catalog.yml +++ b/.github/workflows/maxar_data_catalog.yml @@ -14,16 +14,16 @@ jobs: - name: setup python uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.12" - name: Install GDAL run: | - python -m pip install --upgrade pip - pip install --no-cache-dir Cython - pip install --find-links=https://girder.github.io/large_image_wheels --no-cache GDAL + python -m pip install --upgrade pip + pip install --no-cache-dir Cython + pip install --find-links=https://girder.github.io/large_image_wheels --no-cache GDAL - name: Test GDAL installation run: | - python -c "from osgeo import gdal" - gdalinfo --version + python -c "from osgeo import gdal" + gdalinfo --version - name: install dependencies run: | pip install -r requirements.txt diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..17cdcd4 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,31 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: check-toml + - id: check-yaml + - id: end-of-file-fixer + types: [python] + - id: requirements-txt-fixer + - id: check-added-large-files + args: ["--maxkb=500"] + + - repo: https://github.com/psf/black + rev: 24.10.0 + hooks: + - id: black-jupyter + + - repo: https://github.com/codespell-project/codespell + rev: v2.3.0 + hooks: + - id: codespell + args: + [ + "--ignore-words-list=aci,acount,acounts,fallow,ges,hart,hist,nd,ned,ois,wqs,watermask,tre", + "--skip=*.csv,*.geojson,*.json,*.yml*.js,*.html,*cff,*.pdf", + ] + + - repo: https://github.com/kynan/nbstripout + rev: 0.7.1 + hooks: + - id: nbstripout diff --git a/examples/maxar_open_data.ipynb b/examples/maxar_open_data.ipynb index 0600aec..1bbc2f8 100644 --- a/examples/maxar_open_data.ipynb +++ b/examples/maxar_open_data.ipynb @@ -3,7 +3,7 @@ { "attachments": {}, "cell_type": "markdown", - "id": "aa6cb20e", + "id": "0", "metadata": {}, "source": [ "[![image](https://studiolab.sagemaker.aws/studiolab.svg)](https://studiolab.sagemaker.aws/import/github/opengeos/maxar-open-data/blob/master/examples/maxar_open_data.ipynb)\n", @@ -26,7 +26,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d0c79e4c", + "id": "1", "metadata": {}, "outputs": [], "source": [ @@ -36,7 +36,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3a64fb57", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -48,59 +48,59 @@ { "cell_type": "code", "execution_count": null, - "id": "5e4c4039", + "id": "3", "metadata": {}, "outputs": [], "source": [ - "repo = 'https://raw.githubusercontent.com/opengeos/maxar-open-data/master/'" + "repo = \"https://raw.githubusercontent.com/opengeos/maxar-open-data/master/\"" ] }, { "cell_type": "code", "execution_count": null, - "id": "96a0534d", + "id": "4", "metadata": {}, "outputs": [], "source": [ - "datasets = pd.read_csv(f'{repo}datasets.csv')\n", + "datasets = pd.read_csv(f\"{repo}datasets.csv\")\n", "datasets" ] }, { "cell_type": "code", "execution_count": null, - "id": "2795e43b", + "id": "5", "metadata": {}, "outputs": [], "source": [ - "dataset = 'Kahramanmaras-turkey-earthquake-23'" + "dataset = \"Kahramanmaras-turkey-earthquake-23\"" ] }, { "cell_type": "code", "execution_count": null, - "id": "82615421", + "id": "6", "metadata": {}, "outputs": [], "source": [ - "df = pd.read_csv(f'{repo}datasets/{dataset}.tsv', sep='\\t')\n", + "df = pd.read_csv(f\"{repo}datasets/{dataset}.tsv\", sep=\"\\t\")\n", "df.head()" ] }, { "cell_type": "code", "execution_count": null, - "id": "18f7ffc7", + "id": "7", "metadata": {}, "outputs": [], "source": [ - "geojson = f'{repo}datasets/{dataset}.geojson'" + "geojson = f\"{repo}datasets/{dataset}.geojson\"" ] }, { "cell_type": "code", "execution_count": null, - "id": "c9d39bdb", + "id": "8", "metadata": {}, "outputs": [], "source": [ diff --git a/examples/morocco_earthquake.ipynb b/examples/morocco_earthquake.ipynb index b197606..59d71fa 100644 --- a/examples/morocco_earthquake.ipynb +++ b/examples/morocco_earthquake.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "aa6cb20e", + "id": "0", "metadata": {}, "source": [ "[![image](https://studiolab.sagemaker.aws/studiolab.svg)](https://studiolab.sagemaker.aws/import/github/opengeos/maxar-open-data/blob/master/examples/morocco_earthquake.ipynb)\n", @@ -24,7 +24,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d0c79e4c", + "id": "1", "metadata": {}, "outputs": [], "source": [ @@ -34,7 +34,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3a64fb57", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -43,7 +43,7 @@ }, { "cell_type": "markdown", - "id": "b5df2126", + "id": "3", "metadata": {}, "source": [ "Retrieve all collections from the Maxar Open Data STAC catalog. Each collection represents a single event." @@ -52,7 +52,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b276bd49", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -61,7 +61,7 @@ }, { "cell_type": "markdown", - "id": "b336afa3", + "id": "5", "metadata": {}, "source": [ "Retrieve all collections for a specific event:" @@ -70,18 +70,18 @@ { "cell_type": "code", "execution_count": null, - "id": "5a0f81f3", + "id": "6", "metadata": {}, "outputs": [], "source": [ - "collections = leafmap.maxar_child_collections('Morocco-Earthquake-Sept-2023')\n", + "collections = leafmap.maxar_child_collections(\"Morocco-Earthquake-Sept-2023\")\n", "print(f\"The number of collections: {len(collections)}\")" ] }, { "cell_type": "code", "execution_count": null, - "id": "6ae75c1e", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -91,7 +91,7 @@ }, { "cell_type": "markdown", - "id": "9573aefc", + "id": "8", "metadata": {}, "source": [ "Retrieve all items (tiles) for a specific collection and generate the footprints:" @@ -100,21 +100,22 @@ { "cell_type": "code", "execution_count": null, - "id": "b79b1c89", + "id": "9", "metadata": {}, "outputs": [], "source": [ "gdf = leafmap.maxar_items(\n", - " collection_id='Morocco-Earthquake-Sept-2023', \n", - " child_id='10300100ECC53700', \n", - " return_gdf=True, \n", - " assets=['visual'])\n", + " collection_id=\"Morocco-Earthquake-Sept-2023\",\n", + " child_id=\"10300100ECC53700\",\n", + " return_gdf=True,\n", + " assets=[\"visual\"],\n", + ")\n", "gdf.head()" ] }, { "cell_type": "markdown", - "id": "cf034e57", + "id": "10", "metadata": {}, "source": [ "Add the footprints to the map:" @@ -123,7 +124,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1d59b0cc", + "id": "11", "metadata": {}, "outputs": [], "source": [ @@ -134,7 +135,7 @@ }, { "cell_type": "markdown", - "id": "c08a8626", + "id": "12", "metadata": {}, "source": [ "Retrieve the COG URLs for all tiles in a collection:" @@ -143,17 +144,17 @@ { "cell_type": "code", "execution_count": null, - "id": "9d3d7351", + "id": "13", "metadata": {}, "outputs": [], "source": [ - "images = gdf['visual'].tolist()\n", + "images = gdf[\"visual\"].tolist()\n", "images[:5]" ] }, { "cell_type": "markdown", - "id": "ee7d3452", + "id": "14", "metadata": {}, "source": [ "Download the COGs to a local directory:" @@ -162,7 +163,7 @@ { "cell_type": "code", "execution_count": null, - "id": "fd2d9cd5", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -171,7 +172,7 @@ }, { "cell_type": "markdown", - "id": "b84bfcb7", + "id": "16", "metadata": {}, "source": [ "Create a mosaic json file for the collection. You need to install `cogeo-mosaic` first using `pip install cogeo-mosaic`. Creating a mosaic json file might take a few minutes. Please be patient." @@ -180,7 +181,7 @@ { "cell_type": "code", "execution_count": null, - "id": "fe6687d4", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -189,7 +190,7 @@ }, { "cell_type": "markdown", - "id": "2039125e", + "id": "18", "metadata": {}, "source": [ "Make the mosaic json file available on the web, then you can add the mosaic to the map:" @@ -198,13 +199,13 @@ { "cell_type": "code", "execution_count": null, - "id": "53530826", + "id": "19", "metadata": {}, "outputs": [], "source": [ - "m = leafmap.Map(height='600px')\n", - "m.add_basemap('SATELLITE')\n", - "url = 'https://open.gishub.org/maxar-open-data/datasets/Morocco-Earthquake-Sept-2023/10300100ECC53700.json'\n", + "m = leafmap.Map(height=\"600px\")\n", + "m.add_basemap(\"SATELLITE\")\n", + "url = \"https://open.gishub.org/maxar-open-data/datasets/Morocco-Earthquake-Sept-2023/10300100ECC53700.json\"\n", "m.add_stac_layer(url, name=\"Mosaic\")\n", "m.add_gdf(gdf, layer_name=\"Footprints\", info_mode=\"on_click\")\n", "m" @@ -212,7 +213,7 @@ }, { "cell_type": "markdown", - "id": "29960608", + "id": "20", "metadata": {}, "source": [ "Retrieve the footprint of all tiles for a specific event. This might take 15+ minutes. Please be patient." @@ -221,13 +222,13 @@ { "cell_type": "code", "execution_count": null, - "id": "c1eabbbc", + "id": "21", "metadata": {}, "outputs": [], "source": [ "# gdf = leafmap.maxar_all_items(\n", "# collection_id='Morocco-Earthquake-Sept-2023',\n", - "# return_gdf=True, \n", + "# return_gdf=True,\n", "# verbose=True\n", "# )\n", "# gdf.to_file('maxar_footprints.geojson', driver='GeoJSON')\n", @@ -236,7 +237,7 @@ }, { "cell_type": "markdown", - "id": "1988bfeb", + "id": "22", "metadata": {}, "source": [ "Add the footprints to the map:" @@ -245,19 +246,19 @@ { "cell_type": "code", "execution_count": null, - "id": "af5453b1", + "id": "23", "metadata": {}, "outputs": [], "source": [ "m = leafmap.Map(center=[31.35874, -8.78226], zoom=8)\n", - "url = 'https://raw.githubusercontent.com/opengeos/maxar-open-data/master/datasets/Morocco-Earthquake-Sept-2023_union.geojson'\n", + "url = \"https://raw.githubusercontent.com/opengeos/maxar-open-data/master/datasets/Morocco-Earthquake-Sept-2023_union.geojson\"\n", "m.add_geojson(url, layer_name=\"Footprints\", info_mode=\"on_click\")\n", "m" ] }, { "cell_type": "markdown", - "id": "a89affa7", + "id": "24", "metadata": {}, "source": [ "You can find the list of all available images at [Morocco-Earthquake-Sept-2023.tsv](https://github.com/opengeos/maxar-open-data/blob/master/datasets/Morocco-Earthquake-Sept-2023.tsv)." @@ -266,7 +267,7 @@ { "cell_type": "code", "execution_count": null, - "id": "0b5b6d54", + "id": "25", "metadata": {}, "outputs": [], "source": [ @@ -277,18 +278,18 @@ { "cell_type": "code", "execution_count": null, - "id": "40eefc5b", + "id": "26", "metadata": {}, "outputs": [], "source": [ - "before = gdf[gdf['datetime'] < '2023-09-10']\n", + "before = gdf[gdf[\"datetime\"] < \"2023-09-10\"]\n", "len(before)" ] }, { "cell_type": "code", "execution_count": null, - "id": "65e96359", + "id": "27", "metadata": {}, "outputs": [], "source": [ @@ -298,18 +299,18 @@ { "cell_type": "code", "execution_count": null, - "id": "07928895", + "id": "28", "metadata": {}, "outputs": [], "source": [ - "after = gdf[gdf['datetime'] >= '2023-09-10']\n", + "after = gdf[gdf[\"datetime\"] >= \"2023-09-10\"]\n", "len(after)" ] }, { "cell_type": "code", "execution_count": null, - "id": "fd8d67d8", + "id": "29", "metadata": {}, "outputs": [], "source": [ @@ -319,15 +320,17 @@ { "cell_type": "code", "execution_count": null, - "id": "7abe9c82", + "id": "30", "metadata": {}, "outputs": [], "source": [ "m = leafmap.Map()\n", "m.add_gdf(before, layer_name=\"Before\", info_mode=\"on_click\")\n", - "style_dict = {'color': 'red', 'fillColor': 'red', 'fillOpacity': 0.1}\n", + "style_dict = {\"color\": \"red\", \"fillColor\": \"red\", \"fillOpacity\": 0.1}\n", "style_function = lambda x: style_dict\n", - "m.add_gdf(after, layer_name=\"After\", info_mode=\"on_click\", style_function=style_function)\n", + "m.add_gdf(\n", + " after, layer_name=\"After\", info_mode=\"on_click\", style_function=style_function\n", + ")\n", "m" ] } diff --git a/examples/turkey_earthquake.ipynb b/examples/turkey_earthquake.ipynb index 6cad5aa..7ac5e5e 100644 --- a/examples/turkey_earthquake.ipynb +++ b/examples/turkey_earthquake.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "aa6cb20e", + "id": "0", "metadata": {}, "source": [ "[![image](https://studiolab.sagemaker.aws/studiolab.svg)](https://studiolab.sagemaker.aws/import/github/opengeos/maxar-open-data/blob/master/examples/turkey_earthquake.ipynb)\n", @@ -24,7 +24,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d0c79e4c", + "id": "1", "metadata": {}, "outputs": [], "source": [ @@ -34,7 +34,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3a64fb57", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -43,7 +43,7 @@ }, { "cell_type": "markdown", - "id": "b5df2126", + "id": "3", "metadata": {}, "source": [ "Retrieve all collections from the Maxar Open Data STAC catalog. Each collection represents a single event." @@ -52,7 +52,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b276bd49", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -61,7 +61,7 @@ }, { "cell_type": "markdown", - "id": "b336afa3", + "id": "5", "metadata": {}, "source": [ "Retrieve all collections for a specific event:" @@ -70,18 +70,18 @@ { "cell_type": "code", "execution_count": null, - "id": "5a0f81f3", + "id": "6", "metadata": {}, "outputs": [], "source": [ - "collections = leafmap.maxar_child_collections('Kahramanmaras-turkey-earthquake-23')\n", + "collections = leafmap.maxar_child_collections(\"Kahramanmaras-turkey-earthquake-23\")\n", "print(f\"The number of collections: {len(collections)}\")" ] }, { "cell_type": "code", "execution_count": null, - "id": "6ae75c1e", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -90,7 +90,7 @@ }, { "cell_type": "markdown", - "id": "9573aefc", + "id": "8", "metadata": {}, "source": [ "Retrieve all items (tiles) for a specific collection and generate the footprints:" @@ -99,21 +99,22 @@ { "cell_type": "code", "execution_count": null, - "id": "b79b1c89", + "id": "9", "metadata": {}, "outputs": [], "source": [ "gdf = leafmap.maxar_items(\n", - " collection_id='Kahramanmaras-turkey-earthquake-23', \n", - " child_id='1050050044DE7E00', \n", - " return_gdf=True, \n", - " assets=['visual'])\n", + " collection_id=\"Kahramanmaras-turkey-earthquake-23\",\n", + " child_id=\"1050050044DE7E00\",\n", + " return_gdf=True,\n", + " assets=[\"visual\"],\n", + ")\n", "gdf.head()" ] }, { "cell_type": "markdown", - "id": "cf034e57", + "id": "10", "metadata": {}, "source": [ "Add the footprints to the map:" @@ -122,7 +123,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1d59b0cc", + "id": "11", "metadata": {}, "outputs": [], "source": [ @@ -133,7 +134,7 @@ }, { "cell_type": "markdown", - "id": "c08a8626", + "id": "12", "metadata": {}, "source": [ "Retrieve the COG URLs for all tiles in a collection:" @@ -142,17 +143,17 @@ { "cell_type": "code", "execution_count": null, - "id": "9d3d7351", + "id": "13", "metadata": {}, "outputs": [], "source": [ - "images = gdf['visual'].tolist()\n", + "images = gdf[\"visual\"].tolist()\n", "images[:5]" ] }, { "cell_type": "markdown", - "id": "b84bfcb7", + "id": "14", "metadata": {}, "source": [ "Create a mosaic json file for the collection. You need to install `cogeo-mosaic` first using `pip install cogeo-mosaic`. Creating a mosaic json file might take a few minutes. Please be patient." @@ -161,7 +162,7 @@ { "cell_type": "code", "execution_count": null, - "id": "fe6687d4", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -170,7 +171,7 @@ }, { "cell_type": "markdown", - "id": "2039125e", + "id": "16", "metadata": {}, "source": [ "Make the mosaic json file available on the web, then you can add the mosaic to the map:" @@ -179,12 +180,12 @@ { "cell_type": "code", "execution_count": null, - "id": "53530826", + "id": "17", "metadata": {}, "outputs": [], "source": [ "m = leafmap.Map()\n", - "url = 'https://open.gishub.org/maxar-open-data/datasets/Kahramanmaras-turkey-earthquake-23/1050050044DE7E00.json'\n", + "url = \"https://open.gishub.org/maxar-open-data/datasets/Kahramanmaras-turkey-earthquake-23/1050050044DE7E00.json\"\n", "m.add_stac_layer(url, name=\"Mosaic\")\n", "m.add_gdf(gdf, layer_name=\"Footprints\")\n", "m" @@ -192,7 +193,7 @@ }, { "cell_type": "markdown", - "id": "29960608", + "id": "18", "metadata": {}, "source": [ "Retrieve the footprint of all tiles for a specific event. This might take 15+ minutes. Please be patient." @@ -201,13 +202,13 @@ { "cell_type": "code", "execution_count": null, - "id": "c1eabbbc", + "id": "19", "metadata": {}, "outputs": [], "source": [ "# gdf = leafmap.maxar_all_items(\n", "# collection_id='Kahramanmaras-turkey-earthquake-23',\n", - "# return_gdf=True, \n", + "# return_gdf=True,\n", "# verbose=True\n", "# )\n", "# gdf.to_file('maxar_footprints.geojson', driver='GeoJSON')\n", @@ -216,7 +217,7 @@ }, { "cell_type": "markdown", - "id": "1988bfeb", + "id": "20", "metadata": {}, "source": [ "Add the footprints to the map:" @@ -225,13 +226,13 @@ { "cell_type": "code", "execution_count": null, - "id": "af5453b1", + "id": "21", "metadata": {}, "outputs": [], "source": [ "m = leafmap.Map(center=[36.844461, 37.386475], zoom=8)\n", "# m.add_gdf(gdf, layer_name=\"Footprints\")\n", - "url = 'https://open.gishub.org/maxar-open-data/datasets/Kahramanmaras-turkey-earthquake-23.geojson'\n", + "url = \"https://open.gishub.org/maxar-open-data/datasets/Kahramanmaras-turkey-earthquake-23.geojson\"\n", "m.add_geojson(url, layer_name=\"Footprints\")\n", "m" ] diff --git a/streamlit_app.py b/streamlit_app.py index b9c1d65..404f509 100644 --- a/streamlit_app.py +++ b/streamlit_app.py @@ -5,44 +5,48 @@ st.set_page_config(layout="wide") -url = 'https://open.gishub.org/maxar-open-data' -repo = 'https://github.com/opengeos/maxar-open-data/blob/master/datasets' +url = "https://open.gishub.org/maxar-open-data" +repo = "https://github.com/opengeos/maxar-open-data/blob/master/datasets" -os.environ['GOOGLE_MAPS_API_KEY'] = 'API-KEY' +os.environ["GOOGLE_MAPS_API_KEY"] = "API-KEY" m = leafmap.Map() -m.add_basemap('SATELLITE') -m.add_basemap('ROADMAP') +m.add_basemap("SATELLITE") +m.add_basemap("ROADMAP") @st.cache_data def get_datasets(): - datasets = f'{url}/datasets.csv' + datasets = f"{url}/datasets.csv" df = pd.read_csv(datasets) return df @st.cache_data def get_catalogs(name): - dataset = f'{url}/datasets/{name}.tsv' + dataset = f"{url}/datasets/{name}.tsv" - dataset_df = pd.read_csv(dataset, sep='\t') - catalog_ids = dataset_df['catalog_id'].unique().tolist() + dataset_df = pd.read_csv(dataset, sep="\t") + catalog_ids = dataset_df["catalog_id"].unique().tolist() return catalog_ids -st.title('Visualizing Maxar Open Data') +st.title("Visualizing Maxar Open Data") col1, col2 = st.columns([1.2, 3.8]) with col1: - default = 'Morocco-Earthquake-Sept-2023' - datasets = get_datasets()['dataset'].tolist() - dataset = st.selectbox('Select a dataset', datasets, index=datasets.index(default)) - catalog = st.selectbox('Select a COG mosaic', get_catalogs(dataset), index=get_catalogs(dataset).index('10300500E4F91900')) - geojson = f'{url}/datasets/{dataset}.geojson' - mosaic = f'{url}/datasets/{dataset}/{catalog}.json' - tsv = f'{repo}/{dataset}/{catalog}.tsv' - st.markdown(f'View metadata: [{catalog}.tsv]({tsv})') + default = "Morocco-Earthquake-Sept-2023" + datasets = get_datasets()["dataset"].tolist() + dataset = st.selectbox("Select a dataset", datasets, index=datasets.index(default)) + catalog = st.selectbox( + "Select a COG mosaic", + get_catalogs(dataset), + index=get_catalogs(dataset).index("10300500E4F91900"), + ) + geojson = f"{url}/datasets/{dataset}.geojson" + mosaic = f"{url}/datasets/{dataset}/{catalog}.json" + tsv = f"{repo}/{dataset}/{catalog}.tsv" + st.markdown(f"View metadata: [{catalog}.tsv]({tsv})") with st.expander("Python code snippets"): markdown = f""" @@ -56,15 +60,11 @@ def get_catalogs(name): """ st.code(markdown) - - style = { - 'weight': 1, - 'fillOpacity': 0 - } - m.add_geojson(geojson, layer_name=dataset, style=style, info_mode='on_click') + style = {"weight": 1, "fillOpacity": 0} + m.add_geojson(geojson, layer_name=dataset, style=style, info_mode="on_click") m.add_stac_layer(mosaic, name=catalog) - st.info('About') + st.info("About") markdown = f""" - [Web App Source Code](https://github.com/opengeos/maxar-open-data/blob/master/streamlit_app.py) - [GitHub Repo](https://github.com/opengeos/maxar-open-data)