local-db-lasdot

light weight package for populating mongo database and query it with energy data


License
MIT
Install
pip install local-db-lasdot==0.0.2

Documentation

Local Database

Description:

Popluate and query local mongo server with energy api data


Installation Steps:

Requirements:

numpy: 1.18.2
pandas: 1.0.3
pymongo: 3.10.1
tqdm: 4.45.0

note: Please ensure that mongodb is installed and active before running.

Installation:

pip install local-db-lasdot==0.0.1

Import Statement:

from local_db.create_db import CreateDb

from local_db.query_db import QueryDb

Populate Database Section

Sample Usage

Batch insertion:

create_db = CreateDb(db_name='example_db')
create_db.batch_insert('folder_path')

Single insert:

create = CreateDb(db_name='example_db')
create.single_insert(time_collection='time_(1_sec|1_min|15_min)', data_file_dir='data folder path', meta_file_dir='metadata folder path')

Query Database Section

Sample Usage

Query with filter

query = QueryDb(db_name='example_db')
query_param = ['nest', 'grid', 'solar', 'clotheswasher1', 'dishwasher1']
data, id_list = query.query_df(query_param, 'time_15_min', db_op='OR', city=['all'])
try:
    data = QueryDb.filter_by(data, dataid='6139', city='austin')
except Exception as e:
    print(e)

Query with dictionary parameter

query = QueryDb(db_name='example_db')
query_param = ['air1', 'nest', {'first_floor_square_footage': 2148}]

data, id_list = query.query_df(
    query_param,
    time_collection='time_15_min',
    db_op='AND',
    city=['all']
    first_floor_sqft_tol=0
)

Test scripts

Must have test json files to implement this.
note: commands must be implemented from command line ./local_db directory

python -m unittest tester.TestCreateDbClass.test_db_server

python -m unittest tester.TestCreateDbClass.test_batch_insert

python -m unittest tester.TestCreateDbClass.test_query_error_check

python -m unittest tester.TestCreateDbClass.test_query_empty

python -m unittest tester.TestCreateDbClass.test_query_db_op