Tunnels.fetch_codes¶
- Tunnels.fetch_codes(update=False, dump_dir=None, verbose=False)[source]¶
Fetches the data of railway tunnel lengths.
- Parameters:
update (bool) – Whether to check for updates to the package data; defaults to
False
.dump_dir (str | None) – The path to a directory where the data file will be saved; defaults to
None
.verbose (bool | int) – Whether to print relevant information to the console; defaults to
False
.
- Returns:
A dictionary containing the data of tunnel lengths (including the name, length, owner and relative location) and the date of when the data was last updated.
- Return type:
dict
Examples:
>>> from pyrcs.other_assets import Tunnels # from pyrcs import Tunnels >>> tunl = Tunnels() >>> tunl_len_codes = tunl.fetch_codes() >>> type(tunl_len_codes) dict >>> list(tunl_len_codes.keys()) ['Tunnels', 'Last updated date'] >>> tunl.KEY 'Tunnels' >>> tunl_len_codes_dat = tunl_len_codes[tunl.KEY] >>> type(tunl_len_codes_dat) dict >>> list(tunl_len_codes_dat.keys()) ['Page 1 (A-F)', 'Page 2 (G-P)', 'Page 3 (Q-Z)', 'Page 4 (others)'] >>> page_1_codes = tunl_len_codes_dat['Page 1 (A-F)'] >>> type(page_1_codes) pandas.core.frame.DataFrame >>> page_1_codes.head() Name Other names, remarks ... Length (metres) Length (note) 0 Abbotscliffe ... 1775.7648 1 Abercanaid see Merthyr ... NaN Unavailable 2 Aberchalder see Loch Oich ... NaN Unavailable 3 Aberdovey No 1 also called Frongoch ... 182.8800 4 Aberdovey No 2 also called Morfor ... 200.2536 [5 rows x 10 columns] >>> page_4_codes = tunl_len_codes_dat['Page 4 (others)'] >>> type(page_4_codes) dict >>> list(page_4_codes.keys()) ['Tunnels on industrial and other minor lines', 'Large bridges that are not officially tunnels but could appear to be so'] >>> key1 = 'Tunnels on industrial and other minor lines' >>> page_4_dat = page_4_codes[key1] >>> type(page_4_dat) pandas.core.frame.DataFrame >>> page_4_dat.head() Name Other names, remarks ... Length (metres) Length (note) 0 Ashes Quarry ... 56.6928 1 Ashey Down Quarry ... 33.8328 2 Baileycroft Quarry No 1 ... 28.3464 3 Baileycroft Quarry No 2 ... 21.0312 4 Basfords Hill ... 46.6344 [5 rows x 6 columns] >>> key2 = 'Large bridges that are not officially tunnels but could appear to be so' >>> page_4_dat_ = page_4_codes[key2] >>> type(page_4_dat_) pandas.core.frame.DataFrame >>> page_4_dat_.head() Name Other names, remarks ... Length (metres) Length (note) 0 A470/A472 (north) ... 35.6616 1 A470/A472 (south) ... 28.3464 2 A720 ... 145.3896 3 A9 Aberdeen line ... 141.7320 4 A9 Perth line ... 146.3040 [5 rows x 8 columns]