Logo
  • Home

Tutorials

  • Overview
  • Your first query
  • Translate a filter into API parameters
  • Level 1.0 data from the "Cart_Site" for AOD daily averages

How-to guides

  • Overview
  • CLI workflows
  • Level 1.5 data from all sites with available data for all AOD points
  • Level 2.0 data from the "Cart_Site" for AOD daily averages
  • Level 2.0 data from the "Cart_Site" for SDA daily averages
  • Geographical search
    • Execute the operation
    • Visualize the results as Data Frame
    • Visualize results on Map screen
  • Stations Discovery
  • Match-Up
  • Stations Discovery + Match-Up
  • Development and documentation

Reference

  • Overview
  • CLI
  • Filters
  • Python API
  • AERONET OpenAPI

Explanation

  • Query processing
  • Software design
pygeofilter AERONET API support for CQL2
  • How-to guides
  • Geographical search
  • Edit on Terradue/pygeofilter-aeronet

Geographical search¶

Define a cql2-json filter for:

SDA20=1&if_no_html=1&AVG=20&year=2000&month=6&day=1&hour=0&year2=2000&month2=6&day2=14&hour2=23&lon1=8.0&lat1=44.0&lon2=14.0&lat2=48.0

In [1]:
Copied!
from pathlib import Path
from pystac import Item

import json
import sys

out_dir: Path = Path('.')

cql2_filter = {
    "op": "and",
    "args": [
        {"op": "eq", "args": [{"property": "data_type"}, "SDA20"]},
        {"op": "eq", "args": [{"property": "format"}, "csv"]},
        {"op": "eq", "args": [{"property": "data_format"}, "daily-average"]},
        {
            "op": "t_after",
            "args": [
                {"property": "time"},
                {"timestamp": "2000-06-01T00:00:00Z"},
            ],
        },
        {
            "op": "t_before",
            "args": [
                {"property": "time"},
                {"timestamp": "2000-06-14T23:59:59Z"},
            ],
        },
        {
            "op": "s_intersects",
            "args": [
                {"property": "geometry"},
                {
                    "type": "Polygon",
                    "coordinates": [
                        [
                            [8.0, 44.0],
                            [14.0, 44.0],
                            [14.0, 48.0],
                            [8.0, 48.0],
                            [8.0, 44.0],
                        ]
                    ],
                },
            ],
        },
    ],
}

json.dump(cql2_filter, sys.stdout, indent=2)
from pathlib import Path from pystac import Item import json import sys out_dir: Path = Path('.') cql2_filter = { "op": "and", "args": [ {"op": "eq", "args": [{"property": "data_type"}, "SDA20"]}, {"op": "eq", "args": [{"property": "format"}, "csv"]}, {"op": "eq", "args": [{"property": "data_format"}, "daily-average"]}, { "op": "t_after", "args": [ {"property": "time"}, {"timestamp": "2000-06-01T00:00:00Z"}, ], }, { "op": "t_before", "args": [ {"property": "time"}, {"timestamp": "2000-06-14T23:59:59Z"}, ], }, { "op": "s_intersects", "args": [ {"property": "geometry"}, { "type": "Polygon", "coordinates": [ [ [8.0, 44.0], [14.0, 44.0], [14.0, 48.0], [8.0, 48.0], [8.0, 44.0], ] ], }, ], }, ], } json.dump(cql2_filter, sys.stdout, indent=2)
{
  "op": "and",
  "args": [
    {
      "op": "eq",
      "args": [
        {
          "property": "data_type"
        },
        "SDA20"
      ]
    },
    {
      "op": "eq",
      "args": [
        {
          "property": "format"
        },
        "csv"
      ]
    },
    {
      "op": "eq",
      "args": [
        {
          "property": "data_format"
        },
        "daily-average"
      ]
    },
    {
      "op": "t_after",
      "args": [
        {
          "property": "time"
        },
        {
          "timestamp": "2000-06-01T00:00:00Z"
        }
      ]
    },
    {
      "op": "t_before",
      "args": [
        {
          "property": "time"
        },
        {
          "timestamp": "2000-06-14T23:59:59Z"
        }
      ]
    },
    {
      "op": "s_intersects",
      "args": [
        {
          "property": "geometry"
        },
        {
          "type": "Polygon",
          "coordinates": [
            [
              [
                8.0,
                44.0
              ],
              [
                14.0,
                44.0
              ],
              [
                14.0,
                48.0
              ],
              [
                8.0,
                48.0
              ],
              [
                8.0,
                44.0
              ]
            ]
          ]
        }
      ]
    }
  ]
}

Execute the search operation¶

In [2]:
Copied!
from pygeofilter_aeronet import aeronet_search
from pygeofilter_aeronet.utils import json_dump

item: Item = aeronet_search(
    cql2_filter=cql2_filter,
    output_dir=out_dir
)

json_dump(item.to_dict(), pretty_print=True)
from pygeofilter_aeronet import aeronet_search from pygeofilter_aeronet.utils import json_dump item: Item = aeronet_search( cql2_filter=cql2_filter, output_dir=out_dir ) json_dump(item.to_dict(), pretty_print=True)
2025-11-17 14:13:36.254 | SUCCESS  | pygeofilter_aeronet:aeronet_search:235 - Query on https://aeronet.gsfc.nasa.gov successfully obtained data:
2025-11-17 14:13:36.258 | SUCCESS  | pygeofilter_aeronet:aeronet_search:248 - Data saved to to CSV file: /home/stripodi/Documents/pygeofilter/pygeofilter-aeronet/docs/samples/1f041576-fc24-45bf-bf1a-9d2797a84d01.csv
2025-11-17 14:13:36.267 | SUCCESS  | pygeofilter_aeronet:aeronet_search:282 - Data saved to GeoParquet file: /home/stripodi/Documents/pygeofilter/pygeofilter-aeronet/docs/samples/1f041576-fc24-45bf-bf1a-9d2797a84d01.parquet
{
  "type": "Feature",
  "stac_version": "1.1.0",
  "stac_extensions": [
    "https://stac-extensions.github.io/table/v1.2.0/schema.json"
  ],
  "id": "urn:uuid:1f041576-fc24-45bf-bf1a-9d2797a84d01",
  "geometry": {
    "type": "Polygon",
    "coordinates": [
      [
        [
          8.6267,
          45.3139
        ],
        [
          12.5083,
          45.3139
        ],
        [
          12.5083,
          45.80305
        ],
        [
          8.6267,
          45.80305
        ],
        [
          8.6267,
          45.3139
        ]
      ]
    ]
  },
  "bbox": [
    8.6267,
    45.3139,
    12.5083,
    45.80305
  ],
  "properties": {
    "datetime": "2025-11-17T14:13:36.268406Z"
  },
  "links": [
    {
      "rel": "related",
      "href": "https://aeronet.gsfc.nasa.gov/cgi-bin/print_web_data_v3?SDA20=1&if_no_html=1&AVG=20&year=2000&month=6&day=1&hour=0&year2=2000&month2=6&day2=14&hour2=23&lon1=8.0&lat1=44.0&lon2=14.0&lat2=48.0",
      "type": "text/csv",
      "title": "AERONET Web Service search"
    }
  ],
  "assets": {
    "csv": {
      "href": "1f041576-fc24-45bf-bf1a-9d2797a84d01.csv",
      "type": "text/csv",
      "description": "Search result - CVS Format",
      "table:row_count": 25,
      "table:columns": [
        {
          "name": "AERONET_Site",
          "col_type": "object"
        },
        {
          "name": "Date_(dd:mm:yyyy)",
          "col_type": "object"
        },
        {
          "name": "Time_(hh:mm:ss)",
          "col_type": "object"
        },
        {
          "name": "Day_of_Year",
          "col_type": "int64"
        },
        {
          "name": "Total_AOD_500nm[tau_a]",
          "col_type": "float64"
        },
        {
          "name": "Fine_Mode_AOD_500nm[tau_f]",
          "col_type": "float64"
        },
        {
          "name": "Coarse_Mode_AOD_500nm[tau_c]",
          "col_type": "float64"
        },
        {
          "name": "FineModeFraction_500nm[eta]",
          "col_type": "float64"
        },
        {
          "name": "2nd_Order_Reg_Fit_Error-Total_AOD_500nm[regression_dtau_a]",
          "col_type": "float64"
        },
        {
          "name": "RMSE_Fine_Mode_AOD_500nm[Dtau_f]",
          "col_type": "float64"
        },
        {
          "name": "RMSE_Coarse_Mode_AOD_500nm[Dtau_c]",
          "col_type": "float64"
        },
        {
          "name": "RMSE_FineModeFraction_500nm[Deta]",
          "col_type": "float64"
        },
        {
          "name": "Angstrom_Exponent(AE)-Total_500nm[alpha]",
          "col_type": "float64"
        },
        {
          "name": "dAE/dln(wavelength)-Total_500nm[alphap]",
          "col_type": "float64"
        },
        {
          "name": "AE-Fine_Mode_500nm[alpha_f]",
          "col_type": "float64"
        },
        {
          "name": "dAE/dln(wavelength)-Fine_Mode_500nm[alphap_f]",
          "col_type": "float64"
        },
        {
          "name": "N[Total_AOD_500nm[tau_a]]",
          "col_type": "int64"
        },
        {
          "name": "N[Fine_Mode_AOD_500nm[tau_f]]",
          "col_type": "int64"
        },
        {
          "name": "N[Coarse_Mode_AOD_500nm[tau_c]]",
          "col_type": "int64"
        },
        {
          "name": "N[FineModeFraction_500nm[eta]]",
          "col_type": "int64"
        },
        {
          "name": "N[2nd_Order_Reg_Fit_Error-Total_AOD_500nm[regression_dtau_a]]",
          "col_type": "int64"
        },
        {
          "name": "N[RMSE_Fine_Mode_AOD_500nm[Dtau_f]]",
          "col_type": "int64"
        },
        {
          "name": "N[RMSE_Coarse_Mode_AOD_500nm[Dtau_c]]",
          "col_type": "int64"
        },
        {
          "name": "N[RMSE_FineModeFraction_500nm[Deta]]",
          "col_type": "int64"
        },
        {
          "name": "N[Angstrom_Exponent(AE)-Total_500nm[alpha]]",
          "col_type": "int64"
        },
        {
          "name": "N[dAE/dln(wavelength)-Total_500nm[alphap]]",
          "col_type": "int64"
        },
        {
          "name": "N[AE-Fine_Mode_500nm[alpha_f]]",
          "col_type": "int64"
        },
        {
          "name": "N[dAE/dln(wavelength)-Fine_Mode_500nm[alphap_f]]",
          "col_type": "int64"
        },
        {
          "name": "Data_Quality_Level",
          "col_type": "object"
        },
        {
          "name": "AERONET_Instrument_Number",
          "col_type": "int64"
        },
        {
          "name": "AERONET_Site_Name",
          "col_type": "object"
        },
        {
          "name": "Site_Latitude(Degrees)",
          "col_type": "float64"
        },
        {
          "name": "Site_Longitude(Degrees)",
          "col_type": "float64"
        },
        {
          "name": "Site_Elevation(m)",
          "col_type": "float64"
        },
        {
          "name": "Unnamed: 34",
          "col_type": "float64"
        }
      ]
    },
    "geoparquet": {
      "href": "1f041576-fc24-45bf-bf1a-9d2797a84d01.parquet",
      "type": "application/vnd.apache.parquet",
      "description": "Search result - GeoParquet Format",
      "table:row_count": 25,
      "table:columns": [
        {
          "name": "AERONET_Site",
          "col_type": "object"
        },
        {
          "name": "Date_(dd:mm:yyyy)",
          "col_type": "object"
        },
        {
          "name": "Time_(hh:mm:ss)",
          "col_type": "object"
        },
        {
          "name": "Day_of_Year",
          "col_type": "int64"
        },
        {
          "name": "Total_AOD_500nm[tau_a]",
          "col_type": "float64"
        },
        {
          "name": "Fine_Mode_AOD_500nm[tau_f]",
          "col_type": "float64"
        },
        {
          "name": "Coarse_Mode_AOD_500nm[tau_c]",
          "col_type": "float64"
        },
        {
          "name": "FineModeFraction_500nm[eta]",
          "col_type": "float64"
        },
        {
          "name": "2nd_Order_Reg_Fit_Error-Total_AOD_500nm[regression_dtau_a]",
          "col_type": "float64"
        },
        {
          "name": "RMSE_Fine_Mode_AOD_500nm[Dtau_f]",
          "col_type": "float64"
        },
        {
          "name": "RMSE_Coarse_Mode_AOD_500nm[Dtau_c]",
          "col_type": "float64"
        },
        {
          "name": "RMSE_FineModeFraction_500nm[Deta]",
          "col_type": "float64"
        },
        {
          "name": "Angstrom_Exponent(AE)-Total_500nm[alpha]",
          "col_type": "float64"
        },
        {
          "name": "dAE/dln(wavelength)-Total_500nm[alphap]",
          "col_type": "float64"
        },
        {
          "name": "AE-Fine_Mode_500nm[alpha_f]",
          "col_type": "float64"
        },
        {
          "name": "dAE/dln(wavelength)-Fine_Mode_500nm[alphap_f]",
          "col_type": "float64"
        },
        {
          "name": "N[Total_AOD_500nm[tau_a]]",
          "col_type": "int64"
        },
        {
          "name": "N[Fine_Mode_AOD_500nm[tau_f]]",
          "col_type": "int64"
        },
        {
          "name": "N[Coarse_Mode_AOD_500nm[tau_c]]",
          "col_type": "int64"
        },
        {
          "name": "N[FineModeFraction_500nm[eta]]",
          "col_type": "int64"
        },
        {
          "name": "N[2nd_Order_Reg_Fit_Error-Total_AOD_500nm[regression_dtau_a]]",
          "col_type": "int64"
        },
        {
          "name": "N[RMSE_Fine_Mode_AOD_500nm[Dtau_f]]",
          "col_type": "int64"
        },
        {
          "name": "N[RMSE_Coarse_Mode_AOD_500nm[Dtau_c]]",
          "col_type": "int64"
        },
        {
          "name": "N[RMSE_FineModeFraction_500nm[Deta]]",
          "col_type": "int64"
        },
        {
          "name": "N[Angstrom_Exponent(AE)-Total_500nm[alpha]]",
          "col_type": "int64"
        },
        {
          "name": "N[dAE/dln(wavelength)-Total_500nm[alphap]]",
          "col_type": "int64"
        },
        {
          "name": "N[AE-Fine_Mode_500nm[alpha_f]]",
          "col_type": "int64"
        },
        {
          "name": "N[dAE/dln(wavelength)-Fine_Mode_500nm[alphap_f]]",
          "col_type": "int64"
        },
        {
          "name": "Data_Quality_Level",
          "col_type": "object"
        },
        {
          "name": "AERONET_Instrument_Number",
          "col_type": "int64"
        },
        {
          "name": "AERONET_Site_Name",
          "col_type": "object"
        },
        {
          "name": "Site_Latitude(Degrees)",
          "col_type": "float64"
        },
        {
          "name": "Site_Longitude(Degrees)",
          "col_type": "float64"
        },
        {
          "name": "Site_Elevation(m)",
          "col_type": "float64"
        },
        {
          "name": "Unnamed: 34",
          "col_type": "float64"
        },
        {
          "name": "geometry",
          "col_type": "geometry"
        },
        {
          "name": "datetime",
          "col_type": "datetime64[ns]"
        }
      ]
    }
  }
}

Visualize the results as Data Frame¶

In [3]:
Copied!
from geopandas import read_parquet
from geopandas.geodataframe import GeoDataFrame

geoparquet_file: str = item.get_assets()['geoparquet'].href
geoparquet_data: GeoDataFrame = read_parquet(geoparquet_file)

geoparquet_data
from geopandas import read_parquet from geopandas.geodataframe import GeoDataFrame geoparquet_file: str = item.get_assets()['geoparquet'].href geoparquet_data: GeoDataFrame = read_parquet(geoparquet_file) geoparquet_data
Out[3]:
AERONET_Site Date_(dd:mm:yyyy) Time_(hh:mm:ss) Day_of_Year Total_AOD_500nm[tau_a] Fine_Mode_AOD_500nm[tau_f] Coarse_Mode_AOD_500nm[tau_c] FineModeFraction_500nm[eta] 2nd_Order_Reg_Fit_Error-Total_AOD_500nm[regression_dtau_a] RMSE_Fine_Mode_AOD_500nm[Dtau_f] ... N[dAE/dln(wavelength)-Fine_Mode_500nm[alphap_f]] Data_Quality_Level AERONET_Instrument_Number AERONET_Site_Name Site_Latitude(Degrees) Site_Longitude(Degrees) Site_Elevation(m) Unnamed: 34 geometry datetime
0 Venise 31:05:2000 12:00:00 152 0.702868 0.691315 0.011553 0.983048 0.004935 0.201480 ... 23 lev20 112 Venise 45.31390 12.5083 10.0 NaN POINT (12.5083 45.3139) 2000-05-31 12:00:00
1 Venise 01:06:2000 12:00:00 153 0.240019 0.231789 0.008230 0.950866 0.003788 0.043439 ... 43 lev20 112 Venise 45.31390 12.5083 10.0 NaN POINT (12.5083 45.3139) 2000-06-01 12:00:00
2 Venise 02:06:2000 12:00:00 154 0.409857 0.398926 0.010930 0.972578 0.004475 0.078353 ... 46 lev20 112 Venise 45.31390 12.5083 10.0 NaN POINT (12.5083 45.3139) 2000-06-02 12:00:00
3 Venise 03:06:2000 12:00:00 155 0.569970 0.556496 0.013475 0.976083 0.004998 0.106529 ... 50 lev20 112 Venise 45.31390 12.5083 10.0 NaN POINT (12.5083 45.3139) 2000-06-03 12:00:00
4 Venise 04:06:2000 12:00:00 156 0.505405 0.485035 0.020370 0.953210 0.005549 0.090719 ... 40 lev20 112 Venise 45.31390 12.5083 10.0 NaN POINT (12.5083 45.3139) 2000-06-04 12:00:00
5 Venise 05:06:2000 12:00:00 157 0.475985 0.454433 0.021552 0.937115 0.005355 0.092959 ... 60 lev20 112 Venise 45.31390 12.5083 10.0 NaN POINT (12.5083 45.3139) 2000-06-05 12:00:00
6 Venise 06:06:2000 12:00:00 158 0.509634 0.372044 0.137591 0.749999 0.006624 0.066462 ... 18 lev20 112 Venise 45.31390 12.5083 10.0 NaN POINT (12.5083 45.3139) 2000-06-06 12:00:00
7 Venise 07:06:2000 12:00:00 159 0.245020 0.207304 0.037716 0.842297 0.004223 0.040453 ... 31 lev20 112 Venise 45.31390 12.5083 10.0 NaN POINT (12.5083 45.3139) 2000-06-07 12:00:00
8 Venise 08:06:2000 12:00:00 160 0.194982 0.175087 0.019896 0.894646 0.003871 0.033336 ... 60 lev20 112 Venise 45.31390 12.5083 10.0 NaN POINT (12.5083 45.3139) 2000-06-08 12:00:00
9 Venise 09:06:2000 12:00:00 161 0.289063 0.250073 0.038990 0.860046 0.004191 0.045663 ... 62 lev20 112 Venise 45.31390 12.5083 10.0 NaN POINT (12.5083 45.3139) 2000-06-09 12:00:00
10 Venise 10:06:2000 12:00:00 162 0.329673 0.276642 0.053031 0.847769 0.005405 0.046985 ... 32 lev20 112 Venise 45.31390 12.5083 10.0 NaN POINT (12.5083 45.3139) 2000-06-10 12:00:00
11 Venise 11:06:2000 12:00:00 163 0.322527 0.286831 0.035697 0.888963 0.004722 0.054790 ... 6 lev20 112 Venise 45.31390 12.5083 10.0 NaN POINT (12.5083 45.3139) 2000-06-11 12:00:00
12 Venise 12:06:2000 12:00:00 164 0.428204 0.327143 0.101061 0.771481 0.006707 0.060043 ... 40 lev20 112 Venise 45.31390 12.5083 10.0 NaN POINT (12.5083 45.3139) 2000-06-12 12:00:00
13 Venise 13:06:2000 12:00:00 165 0.450029 0.377774 0.072255 0.839923 0.006627 0.073435 ... 23 lev20 112 Venise 45.31390 12.5083 10.0 NaN POINT (12.5083 45.3139) 2000-06-13 12:00:00
14 Venise 14:06:2000 12:00:00 166 0.437051 0.420146 0.016905 0.960002 0.005063 0.106180 ... 45 lev20 112 Venise 45.31390 12.5083 10.0 NaN POINT (12.5083 45.3139) 2000-06-14 12:00:00
15 Ispra 31:05:2000 12:00:00 152 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 ... 0 lev20 80 Ispra 45.80305 8.6267 235.0 NaN POINT (8.6267 45.80305) 2000-05-31 12:00:00
16 Ispra 01:06:2000 12:00:00 153 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 ... 0 lev20 80 Ispra 45.80305 8.6267 235.0 NaN POINT (8.6267 45.80305) 2000-06-01 12:00:00
17 Ispra 02:06:2000 12:00:00 154 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 ... 0 lev20 80 Ispra 45.80305 8.6267 235.0 NaN POINT (8.6267 45.80305) 2000-06-02 12:00:00
18 Ispra 03:06:2000 12:00:00 155 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 ... 0 lev20 80 Ispra 45.80305 8.6267 235.0 NaN POINT (8.6267 45.80305) 2000-06-03 12:00:00
19 Ispra 04:06:2000 12:00:00 156 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 ... 0 lev20 80 Ispra 45.80305 8.6267 235.0 NaN POINT (8.6267 45.80305) 2000-06-04 12:00:00
20 Ispra 05:06:2000 12:00:00 157 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 ... 0 lev20 80 Ispra 45.80305 8.6267 235.0 NaN POINT (8.6267 45.80305) 2000-06-05 12:00:00
21 Ispra 07:06:2000 12:00:00 159 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 ... 0 lev20 80 Ispra 45.80305 8.6267 235.0 NaN POINT (8.6267 45.80305) 2000-06-07 12:00:00
22 Ispra 09:06:2000 12:00:00 161 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 ... 0 lev20 80 Ispra 45.80305 8.6267 235.0 NaN POINT (8.6267 45.80305) 2000-06-09 12:00:00
23 Ispra 10:06:2000 12:00:00 162 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 ... 0 lev20 80 Ispra 45.80305 8.6267 235.0 NaN POINT (8.6267 45.80305) 2000-06-10 12:00:00
24 Ispra 14:06:2000 12:00:00 166 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 -999.000000 ... 0 lev20 80 Ispra 45.80305 8.6267 235.0 NaN POINT (8.6267 45.80305) 2000-06-14 12:00:00

25 rows × 37 columns

Visualize results on Map screen¶

In [4]:
Copied!
from folium import (
    GeoJson,
    LayerControl,
    Map
)
from folium.plugins import (
    Fullscreen
)
from IPython.display import (
    display,
    HTML
)

map: Map = Map()
layer_control = LayerControl(position="topright", collapsed=True)
fullscreen = Fullscreen()
style = {"fillColor": "#00000000", "color": "#0000ff", "weight": 1}

footprints: GeoJson = GeoJson(
    geoparquet_data.dissolve(by='AERONET_Site').to_json(default=str),
    name="Stac Item footprints",
    style_function=lambda x: style,
    control=True,
)

footprints.add_to(map)
layer_control.add_to(map)
fullscreen.add_to(map)
map.fit_bounds(map.get_bounds()) # type: ignore not to important for the demo
map
from folium import ( GeoJson, LayerControl, Map ) from folium.plugins import ( Fullscreen ) from IPython.display import ( display, HTML ) map: Map = Map() layer_control = LayerControl(position="topright", collapsed=True) fullscreen = Fullscreen() style = {"fillColor": "#00000000", "color": "#0000ff", "weight": 1} footprints: GeoJson = GeoJson( geoparquet_data.dissolve(by='AERONET_Site').to_json(default=str), name="Stac Item footprints", style_function=lambda x: style, control=True, ) footprints.add_to(map) layer_control.add_to(map) fullscreen.add_to(map) map.fit_bounds(map.get_bounds()) # type: ignore not to important for the demo map
Out[4]:
Make this Notebook Trusted to load map: File -> Trust Notebook
Previous Next

Apache License, Version 2.0

Built with MkDocs using a theme provided by Read the Docs.
Terradue/pygeofilter-aeronet « Previous Next »