GithubHelp home page GithubHelp logo

fzj-iek3-vsa / ethos-builda-client Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 333 KB

Repository for the Python client for ETHOS.BUILDA

License: MIT License

Python 100.00%
buildings data germany python-client

ethos-builda-client's Introduction

Project generated with PyScaffold

Forschungszentrum Juelich Logo

!!! The API this client is accessing will be available from July 1st !!!

ETHOS.BUILDA-Client

Python client for the building database ETHOS.BUILDA.

This is a Python HTTP-client that provides methods for accessing the API endpoints of ETHOS.BUILDA. The endpoints are documented using Swagger and can be accessed here: https://ethos-builda.fz-juelich.de.

ETHOS.BUILDA is a database containing building-level data for the German building stock. It is based on various data sources that are combined and enriched with machine learning approaches to generate one consistent and complete building dataset. The database is released under the Open Data Commons Open Database License (ODbL).The license of the contents of the database are provided with the query results for the individual data points. Additionally, the sources of the data points and information on the type of processing that was done to assign the information from the raw data to the building in ETHOS.BUILDA are included in the query results.

Installation

You can install a specific release directly from remote repository via:

pip install git+https://github.com/FZJ-IEK3-VSA/[email protected]

If you execute this command without specifying the tag/release, you will install the latest release.

You can also install by downloading the repo to a local folder, checking out the tag/branch you need, cd-ing into it and installing the client into an environment of your choice (e.g. conda) via:

pip install .

For development, install in editable mode with:

pip install -e .

And if you want to execute tests:

pip install -e .[testing]

Or for development and testing:

pip install -e ".[test,development]"

Usage

Import and instantiate the client via:

from builda_client.client import BuildaClient
client = BuildaClient()

This is sufficient for the standard use case.

If you are an internal user at the IEK-3 of Forschungszentrum Jülich, please use the internal version of the client. Using this client, you have access to additional methods for querying and writing data. However, this requires a username and password as the respective API endpoints are not openly available (yet).

from builda_client.dev_client import BuildaDevClient
client = BuildaDevClient(username='your_username', password='your_password')

In both cases you then have access to methods for querying individual building and statistical data. Please be aware that querying large amounts of data can take a long time, so make use of the filter parameters to appropriately restrict your query.

building_data = client.get_residential_buildings(city='Jülich', street='Grünstr.')

You can access the buildings and convert them to a pandas dataframe by calling:

import pandas as pd
building_df = pd.DataFrame(building_data.buildings)

The values of the attributes are saved in the JSON dictionary with the key 'value'. Details for the source and lineage abbreviations used in the building data can be access via:

lineages = pd.DataFrame(building_data.lineages)
sources = pd.DataFrame(building_data.sources)

How to create new version

  1. Set the base_url in config.yml to the new version of the API.
  2. Test if the client still works by running the tests
  3. Merge changes into main branch
  4. Tag with version (e.g. v1.0)
  5. Change base_url back to /api/v0 for further development

If you need to do changes to a version later, check out a new branch at the tag.

Create documentation in HTML and LaTeX format via tox -e docs_html,docs_latex

About us

We are the Institute of Energy and Climate Research - Jülich Systems Analysis (IEK-3) belonging to the Forschungszentrum Jülich. Our interdisciplinary institute's research is focusing on energy-related process and systems analyses. Data searches and system simulations are used to determine energy and mass balances, as well as to evaluate performance, emissions and costs of energy systems. The results are used for performing comparative assessment studies between the various systems. Our current priorities include the development of energy strategies, in accordance with the German Federal Government’s greenhouse gas reduction targets, by designing new infrastructures for sustainable and secure energy supply chains and by conducting cost analysis studies for integrating new technologies into future energy market frameworks.

Acknowledgements

This work was supported by the Helmholtz Association under the program "Energy System Design".

Helmholtz Logo

Note

This project has been set up using PyScaffold 4.2.3. For details and usage information on PyScaffold see https://pyscaffold.org/.

ethos-builda-client's People

Contributors

kdabrock avatar

Stargazers

Kevin Knosala avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.