Download by basin, rather then by bore

master
Daniel Howe 6 years ago
parent bf8d4b2f13
commit 6d2e0f89c5

@ -218,18 +218,43 @@ def open_browser(download_dir):
return driver
def telemetered_bore_downloader(bore_ids, start_date, end_date, download_dir):
def telemetered_bore_downloader(basin,
download_dir=None,
start_date=None,
end_date=None):
"""Download multiple records from telemetered bore.
Args:
bore_ids: bore ID values (array-like)
basin: basin name or code (string)
download_dir: path to where downloaded files will be saved
start_date: start date (string YYYY-MM-DD format)
end_date: end date (string YYYY-MM-DD format)
download_dir: path to where downloaded files will be saved
Raises:
ValueError when bore ID is invalid
"""
# Get full name of basin
basins = get_basins()
# Check if full basin name was provided
if basin in basins['Basin name'].values:
basin_name = basin
else:
try:
# Check ift two-letter basin code was provided
basin_name = basins.groupby('Basin code').first().loc[basin][
'Basin name']
except KeyError:
raise KeyError('Basin {} not found'.format(basin))
# Get list of bore IDs from selected basin
bore_ids = basins[basins['Basin name'] == basin_name].index.values
# Add basin name to root download directory
download_dir = os.path.join(download_dir, basin_name)
# Open browser
driver = open_browser(download_dir)
# Set up log File
@ -270,6 +295,17 @@ def telemetered_bore_downloader(bore_ids, start_date, end_date, download_dir):
driver.quit()
def get_basins():
"""Load basin definitions file."""
# Get basin info for telemetered site data
csv_name = os.path.join(
os.path.dirname(__file__), 'data', 'telemetered-sites.csv')
basins = pd.read_csv(csv_name, index_col=0)
return basins
def extract_definitions(input_dir, output_dir):
"""Extract variable and quality metadata from bore records.
@ -279,9 +315,7 @@ def extract_definitions(input_dir, output_dir):
"""
# Get basin info for telemetered site data
csv_name = os.path.join(
os.path.dirname(__file__), 'data', 'telemetered-sites.csv')
basins = pd.read_csv(csv_name, index_col=0)
basins = get_basins()
# Find zip files
zip_names = [f for f in os.listdir(input_dir) if f.endswith('.zip')]

Loading…
Cancel
Save