GeofabrikDownloader.get_valid_download_info

GeofabrikDownloader.get_valid_download_info(subregion_name, osm_file_format, download_dir=None, **kwargs)[source]

Get information of downloading (or downloaded) data file.

The information includes a valid subregion name, a default filename, a URL and an absolute path where the data file is (to be) saved locally.

Parameters:
  • subregion_name (str) – name of a (sub)region available on GeofabrikDownloader free download server

  • osm_file_format (str) – file format/extension of the OSM data available on the download server

  • download_dir (str | None) – directory for saving the downloaded file(s), defaults to None; when download_dir=None, it refers to cdd_geofabrik().

  • kwargs – [optional] parameters of pyhelpers.dirs.cd(), including mkdir``(default: ``False)

Returns:

valid subregion name, filename, download url and absolute file path

Return type:

Tuple[str, str, str, str]

Examples:

>>> from pydriosm.downloader import GeofabrikDownloader
>>> import os
>>> gfd = GeofabrikDownloader()

>>> # valid subregion name, filename, download url and absolute file path
>>> subregion_name = 'london'
>>> osm_file_format = "pbf"
>>> info_1 = gfd.get_valid_download_info(subregion_name, osm_file_format)
>>> subregion_name_, osm_filename, download_url, file_pathname = info_1
>>> subregion_name_
'Greater London'
>>> osm_filename
'greater-london-latest.osm.pbf'
>>> os.path.dirname(download_url)
'https://download.geofabrik.de/europe/united-kingdom/england'
>>> os.path.relpath(os.path.dirname(file_pathname))
'osm_data\geofabrik\europe\united-kingdom\england\greater-london'

>>> # Specify a new directory for downloaded data
>>> download_dir = "tests/osm_data"
>>> info_2 = gfd.get_valid_download_info(subregion_name, osm_file_format, download_dir)
>>> _, _, _, file_pathname2 = info_2
>>> os.path.relpath(os.path.dirname(file_pathname2))
'tests\osm_data\greater-london'

>>> gfd_ = GeofabrikDownloader(download_dir=download_dir)
>>> info_3 = gfd_.get_valid_download_info(subregion_name, osm_file_format)
>>> _, _, _, file_pathname3 = info_3
>>> os.path.relpath(os.path.dirname(file_pathname3))
'tests\osm_data\europe\united-kingdom\england\greater-london'