773. Save the results to CSV files.
88"""
99import datetime
10- import os
10+ from config_versioned import Config
1111from openpois .osm .download import (
1212 build_date_range ,
1313 collect_element_ids ,
1818# Configuration constants
1919# -----------------------------------------------------------------------------
2020
21- TIMEOUT = 1000
22- BBOX = {"ymin" : 47.41 , "xmin" : - 122.48 , "ymax" : 47.79 , "xmax" : - 122.16 }
23- START_DATE = datetime .datetime (2016 , 1 , 1 ) # Earliest option is September 13, 2012
24- END_DATE = datetime .datetime (2025 , 12 , 31 ) # Latest
25- DATE_INTERVAL = datetime .timedelta (days = 7 )
26- OSM_KEYS = ["amenity" , "shop" , "healthcare" , "leisure" ]
27- SAVE_DIR = "~/data/osm_example_data"
21+ _cfg = Config ("~/repos/openpois/config.yaml" )
2822
29- os .makedirs (SAVE_DIR , exist_ok = True )
23+ TIMEOUT = _cfg .get ("download" , "timeout" )
24+ BBOX = _cfg .get ("download" , "bbox" )
25+ START_DATE = datetime .datetime .combine (_cfg .get ("download" , "start_date" ), datetime .time .min ) # Earliest option is September 13, 2012
26+ END_DATE = datetime .datetime .combine (_cfg .get ("end_date" ), datetime .time .min ) # Latest
27+ DATE_INTERVAL = datetime .timedelta (days = _cfg .get ("download" , "date_interval_days" ))
28+ OSM_KEYS = _cfg .get ("osm_keys" )
29+ SAVE_DIR = _cfg .get_dir_path ("osm_download" )
30+
31+ SAVE_DIR .mkdir (parents = True , exist_ok = True )
3032
3133
3234# -----------------------------------------------------------------------------
5052 )
5153
5254 # Save elements table
53- elements_table .to_csv (
54- os .path .join (SAVE_DIR , "osm_elements.csv" ),
55- index = False ,
55+ _cfg .write (elements_table , "osm_download" , "osm_elements" )
56+ print (
57+ f"Succeeded on { len (succeed_dates )} dates, "
58+ f"failed on { len (failed_dates )} "
5659 )
57- print (f"Saved { len (elements_table )} elements to osm_elements.csv" )
58- print (f"Succeeded on { len (succeed_dates )} dates, failed on { len (failed_dates )} " )
5960
6061 # Download element histories
6162 versions_df , changes_df , failed_rows = download_element_histories (
6566 )
6667
6768 # Save results
68- versions_df .to_csv (
69- os .path .join (SAVE_DIR , "osm_versions.csv" ),
70- index = False ,
71- )
72- changes_df .to_csv (
73- os .path .join (SAVE_DIR , "osm_changes.csv" ),
74- index = False ,
75- )
69+ _cfg .write (versions_df , "osm_download" , "osm_versions" )
70+ _cfg .write (changes_df , "osm_download" , "osm_changes" )
7671 print (f"Saved { len (versions_df )} versions and { len (changes_df )} changes" )
77-
78- print (f"Failed on { len (failed_rows )} elements" )
79- failed_elements = elements_table .iloc [failed_rows , :]
80- failed_elements .to_csv (
81- os .path .join (SAVE_DIR , "osm_failed_elements.csv" ),
82- index = False ,
83- )
72+ _cfg .write (failed_rows , "osm_download" , "osm_failed_elements" )
73+ print (f"Failed on { len (failed_rows )} elements" )
0 commit comments