Coder Social home page Coder Social logo

striezel / weather-information-collector Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 0.0 3.9 MB

Collects weather information from various ReST APIs.

License: GNU General Public License v3.0

CMake 3.51% Shell 1.30% C++ 94.46% Batchfile 0.74%
apixu-api apixu openweathermap-api openweathermap weather darksky darksky-api weatherbit weatherbit-api weatherstack

weather-information-collector's Introduction

weather-information-collector

weather-information-collector is a tool that collects weather information from various available ReST API services (currently OpenWeatherMap, Open-Meteo, Weatherbit and Weatherstack) and stores the information in a database. Currently only MySQL and compatible DBMS like MariaDB are supported.

Data collection tasks can be configured individually. weather-information-collector will check that these collection tasks do not overlap (i.e. that there are not two tasks which collect the same information from the same API). It will also check that any configured tasks do not exceed the request limits imposed by the APIs.

See the documentation for more information.

Build status

  • GitHub workflows: GitHub CI Clang status GitHub CI GCC status GitHub CI MSYS2 status
  • GitLab CI: GitLab pipeline status

Building from source

Prerequisites

To build the weather-information-collector from source you need a C++ compiler with support for C++17, CMake 3.8 or later, the cURL library (>=7.17), and the MariaDB library. pkg-config is required to make it easier to find compiler options for the installed libraries. Additionally, the program uses Catch (C++ Automated Test Cases in Headers) to perform some tests.

It also helps to have Git, a distributed version control system, on your build system to get the latest source code directly from the Git repository.

All of that can usually be installed be typing

apt-get install catch cmake g++ git libcurl4-gnutls-dev libmariadb-dev pkg-config

or

yum install catch cmake gcc-c++ git libcurl-devel mariadb-devel pkgconfig

into a root terminal.

Note: If you do not want to perform a build on bare metal, then try to use Docker (see docker/ directory) instead.

Getting the source code

Get the source directly from Git by cloning the Git repository and change to the directory after the repository is completely cloned:

git clone https://github.com/striezel/weather-information-collector.git ./wic
cd wic

That's it, you should now have the current source code on your machine.

Build process

The build process is relatively easy, because CMake does all the preparations. Starting in the root directory of the source, you can do the following steps:

mkdir build
cd build
cmake ../
make -j4

Run with Docker

If you prefer Docker over the native approach, take a look into the docker/ directory and refer to the readme there.

Building from source on Windows

For information how to build weather-information-collector on Windows, see the MSYS2 build instructions.

Usage

weather-information-collector consists of several tools that can perform different tasks. See the corresponding readme files for usage information:

Copyright and Licensing

Copyright 2017, 2018, 2019, 2020, 2021, 2022, 2023 Dirk Stolle

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

weather-information-collector's People

Contributors

striezel avatar

Watchers

 avatar  avatar  avatar

weather-information-collector's Issues

Open-Meteo integration

Hi,

I just saw you project while looking for documentation about darksky api. I really liked your documentation for dark sky at https://github.com/striezel/weather-information-collector/blob/master/src/api/darksky.md Because it is about to shut down, there is barely any good information left.

You mentioned in your list of improvements that you want to add more data provider. I created a free weather API that could be a candidate for that: https://open-meteo.com

Would you be interested to integrate it? Let me know if you need some additional weather variables or different syntax for location selection.

Best, Jeff

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.