From 3686de5e7a047278751cf21279b9f7f08465c389 Mon Sep 17 00:00:00 2001 From: Clemens Berteld <clemens@berteld.com> Date: Sun, 8 Aug 2021 19:09:44 +0200 Subject: [PATCH] Optimized DB creation Rounding values doesn't work yet, script will fail --- dataacquisition/DwdAcquisition.py | 16 ++++--- dataacquisition/ExportToDatabase.py | 40 ++++++++++++++---- .../pickle/stationList_germany.pickle | Bin 14530 -> 143099 bytes dataacquisition/testing.py | 2 + 4 files changed, 44 insertions(+), 14 deletions(-) create mode 100644 dataacquisition/testing.py diff --git a/dataacquisition/DwdAcquisition.py b/dataacquisition/DwdAcquisition.py index 48d1d76..eaa4ed1 100644 --- a/dataacquisition/DwdAcquisition.py +++ b/dataacquisition/DwdAcquisition.py @@ -8,6 +8,8 @@ import pickle import numpy as np import ExportToWorldShape as exportToWorldShape import ExportToDatabase as exportToDatabase +from IPython.display import display +from pip._internal.utils.misc import tabulate """ example files: @@ -190,11 +192,15 @@ def start(): loadDWDGauges() stationList = stationList.loc[stationList['country'] == "Germany"] - # loadAndJoinDWDClimateFilenames() - # loadTemperatureFromDWDGauges() - with open("./pickle/stationList_germany.pickle", "wb") as pickleFile: - pickle.dump(stationList, pickleFile) - + loadAndJoinDWDClimateFilenames() + loadTemperatureFromDWDGauges() + + # with open("./pickle/stationList_germany.pickle", "wb") as pickleFile: + # pickle.dump(stationList, pickleFile) + # stationList = pickle.load(pickleFile) + # stationList = pd.read_pickle('./pickle/stationList_germany.pickle') + + # export station list to different outputs #exportToWorldShape.export(stationList) diff --git a/dataacquisition/ExportToDatabase.py b/dataacquisition/ExportToDatabase.py index 8b118fc..9f8ea8a 100644 --- a/dataacquisition/ExportToDatabase.py +++ b/dataacquisition/ExportToDatabase.py @@ -16,7 +16,7 @@ stationGPD = None # Connect to DB "postgres" to check for database "temperatures_berteld_morstein" -def check_for_db_existence(): +def check_for_db_existence(stationList): print("Checking for database existence") with psycopg2.connect(database='postgres', user='postgres', password='postgres', host='localhost', port=5432) as connection: with connection.cursor() as cursor: @@ -30,7 +30,7 @@ def check_for_db_existence(): print('DB not existing') try: create_db(connection, cursor) - create_table() + create_table(stationList) print('Successfully created database and table') except (Exception, psycopg2.DatabaseError) as error: print(error) @@ -45,10 +45,17 @@ def create_db(connection, cursor): # Connect to DB "temperatures_berteld_morstein" to create table "temperatures" -def create_table(): +def create_table(stationList): + df_columns = list(stationList) + columns = ['id INTEGER', 'lon NUMERIC', 'lat NUMERIC', 'country TEXT', 'file TEXT'] + for column in df_columns: + if str(column).startswith('19') or str(column).startswith('20'): + columns.append('"{}" NUMERIC'.format(column)) + columns_clean = str(columns).strip('[]').replace("'", "") + with psycopg2.connect(database='temperatures_berteld_morstein', user='postgres', password='postgres', host='localhost', port=5432) as connection: with connection.cursor() as cursor: - query = sql.SQL("CREATE TABLE temperatures (id INTEGER, lon NUMERIC, lat NUMERIC, country TEXT);") + query = sql.SQL("""CREATE TABLE stations ({});""".format(columns_clean)) print(query) cursor.execute(query) @@ -60,19 +67,34 @@ def insert_data(stationList): if len(stationList) > 0: df_columns = list(stationList) # create (col1,col2,...) - columns = ",".join(df_columns) + + # As integers like 2018, 2017, etc. are not possible as column names, double quotes have to be added. This requires some tricks and cleanups + columns = [] + for column in df_columns: + columns.append('"' + column + '"') + columns = str(columns).replace('[', '').replace(']', '').replace("'", "").replace('\n', '').replace(' ', '') + + values = [] + for value in df_columns: + if isinstance(value, str): + value = value.replace('NaN', 'NULL') + elif isinstance(value, float): + value = round(value, 3) + values.append(value) + + values = "VALUES({})".format(",".join(values)) + # create VALUES('%s', '%s",...) one '%s' per column - values = "VALUES({})".format(",".join(["%s" for _ in df_columns])) + # values = "VALUES({})".format(",".join(["%s" for _ in df_columns])) # create INSERT INTO table (columns) VALUES('%s',...) - insert_stmt = "INSERT INTO {} ({}) {}".format('temperatures', columns, values) - + insert_stmt = """INSERT INTO {} ({}) {}""".format('stations', columns, values) psycopg2.extras.execute_batch(cursor, insert_stmt, stationList.values) def export(stationList): - check_for_db_existence() + check_for_db_existence(stationList) insert_data(stationList) # return stationList diff --git a/dataacquisition/pickle/stationList_germany.pickle b/dataacquisition/pickle/stationList_germany.pickle index cfe9b01de45901830483a9b5abc320c9e59529f1..4b638258aadebfe2cf7584c508c03244eea8f084 100644 GIT binary patch literal 143099 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 literal 14530 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 BO(FmQ diff --git a/dataacquisition/testing.py b/dataacquisition/testing.py new file mode 100644 index 0000000..d8150d8 --- /dev/null +++ b/dataacquisition/testing.py @@ -0,0 +1,2 @@ +for i in range(1949, 2019): + print(('"{}" NUMERIC,').format(str(i))) -- GitLab