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 the method cdd()

  • 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()

>>> subrgn_name = 'london'
>>> file_format = "pbf"

>>> # valid subregion name, filename, download url and absolute file path
>>> info1 = gfd.get_valid_download_info(subrgn_name, file_format)
>>> valid_subrgn_name, pbf_filename, dwnld_url, path_to_pbf = info1

>>> valid_subrgn_name
'Greater London'
>>> pbf_filename
'greater-london-latest.osm.pbf'
>>> os.path.dirname(dwnld_url)
'https://download.geofabrik.de/europe/great-britain/england'
>>> os.path.relpath(os.path.dirname(path_to_pbf))
'osm_data\geofabrik\europe\great-britain\england\greater-london'

>>> # Specify a new directory for downloaded data
>>> dwnld_dir = "tests\osm_data"

>>> info2 = gfd.get_valid_download_info(subrgn_name, file_format, dwnld_dir)
>>> _, _, _, path_to_pbf2 = info2

>>> os.path.relpath(os.path.dirname(path_to_pbf2))
'tests\osm_data\greater-london'

>>> gfd_ = GeofabrikDownloader(download_dir=dwnld_dir)

>>> info3 = gfd_.get_valid_download_info(subrgn_name, file_format)
>>> _, _, _, path_to_pbf3 = info3

>>> os.path.relpath(os.path.dirname(path_to_pbf3))
'tests\osm_data\europe\great-britain\england\greater-london'