Metadata-Version: 2.4
Name: moncenterlib
Version: 1.1.0
Summary: MonCenterLib is a python library for geodetic monitoring.
Author-email: Daniel Mamaev <moncenter@moncenter.ru>
License: MIT
Project-URL: Documentation, https://moncenterlib.readthedocs.io/
Project-URL: Source, https://github.com/DanielMamaev/MonCenterLib
Keywords: python
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: POSIX :: Linux
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: typeguard==4.1.5
Requires-Dist: gps-time==2.8.8
Requires-Dist: requests==2.31.0
Requires-Dist: timezonefinder==8.2.1
Requires-Dist: pvlib==0.15.0
Requires-Dist: unlzw3==0.2.3

# MonCenterLib

<img src="https://raw.githubusercontent.com/DanielMamaev/MonCenterLib/main/img/Moncenter.svg" alt="drawing" width="500"/>

MonCenterLib is a python library for geodetic monitoring. The library contains programs, designed to collect, process, analyze and visualize data for geodetic time series.

The library is being developed by the following concepts:
* open source code;
* python programming language;
* an object-oriented programming;
* the program code is executed on Linux (soon Windows) operating system;
* the library's software modules are able to use in Jupiter Notebook, Google Colaboratory.

The following functions are implemented in the library:
* connection to GNSS receivers, vertical movement sensor (VMS) and video inclinometer (VIM);
* converting GNSS measurements to RINEX and other formats;
* processing multiple GNSS measurements files in the geodetic monitoring network;
* checking quality of GNSS measurements;
* downloading files from the CDDIS online archive (boardcast and precise ephemerides, clock corrections, orbit parameters, observation files);
* downloading files from the RGS Centre web service (observation files, obtaining information about stations of the FAGN);
* documentation and examples of using the program code.

The MonCenterLib library needs to be supplemented with the following modules:
* supporting for Windows system;
* formation of time series of points in the geodetic network;
* processing  of measurement results of the VIM in real time and in post-processing;
* construction of time series inclination for controlling elements in the geodetic network;
* processing measurement results using the projected VMS in real time and in post-processing;
* interaction with the geodetic monitoring database;
* tracking acceptable values of deviations of geodetic monitoring parameters;
* processing time series of the geodetic network to estimate of the structural stability of the monitoring object.

## Modules

|Package|Module|Class|Description|Status|
|---|---|---|---|---|
|root |stream2file|Stream2File |This class is used to convert a stream to a file. You can choose type of connections: serial, TCP client and NTRIP. |Ready |
|gnss |tools4rnx|RtkLibConvbin|This class is based on the RTKLib software package. Convert RTCM, receiver raw data log and RINEX file to RINEX and SBAS/LEX message file. SBAS message file complies with RTKLIB SBAS/LEX message format. See more about RTKLIB here: https://rtklib.com/| Ready|
|     |postprocessing|RtkLibPost| RTKLIB contains a post processing analysis AP RTKPOST. RTKPOST inputs the standard RINEX 2.10, 2.11, 2.12, 3.00, 3.01, 3.02 (draft) observation data and navigation message files (GPS, GLONASS, Galileo, QZSS, BeiDou and SBAS) and can computes the positioning solutions by various positioning modes including Single‐point, DGPS/DGNSS, Kinematic, Static, PPP‐Kinematic and PPP‐Static. See more about RTKLIB here: https://rtklib.com/ |Ready|
|     |quality_check|Anubis|This module is designed for monitoring the quality and quantity of multi-GNSS data.See more about G-Nut/Anubis here: https://gnutsoftware.com/software/anubis |Ready|
|     |cddis_client|CDDISClient|This module is designed to download one or more GNSS files from the CDDIS archive https://cddis.nasa.gov/ |Ready|
|     |rgs_client|RGSClient|This module allows you to download various GNSS files from the service https://rgs-centre.ru |Ready|
|     |code_client|CODEClient|Client for downloading precise CODE products for GNSS processing. The class downloads files from the AIUB/CODE archive http://ftp.aiub.unibe.ch/CODE. |Ready|
|     |bernese_tools|Bernese52|Helper class for preparing Bernese 5.2 input files from GNSS station metadata. |Ready|
|     |gnss_time_series|parse_pos_file|This function for parsing .pos file. The method returns header, name of columns and time series.|Ready|
|station_power_simulator|solar_power|SolarPanelPower|Solar panel power generation simulator. The class estimates hourly electrical power produced by a solar panel using historical meteorological data and solar geometry calculations. |Ready|
|     |wind_turbine_power|WindTurbinePower |Wind turbine power generation simulator. The class estimates hourly electrical power output of a wind turbine using historical weather data and turbine performance parameters. |Ready|
|     |power_balance|PowerBalanceAnalyzer | Energy balance simulator for autonomous stations. The class evaluates whether a set of energy sources (solar panels, wind turbines, etc.) can support a constant load, optionally including battery storage simulation. |Ready|
|stats.stats_gost_R_8_736_2011|basic_stats |calc_basic_stats |Clause 5. Estimation of the measured value and the standard deviation. |Ready |
|     |grubbs_filter |grubbs_filter |Clause 6. Detection and elimination of gross errors. |Ready |
|     |composite_test |check_normality_composite |Clause 7. Confidence limits for random error. 7.3 For 15 < n <= 50 measurement results |Ready |
|     |pearson_test |pearson_chi_square_normality |Clause 7. Confidence limits for random error. 7.4 For n > 50 measurement results |Ready |
|     |mises_smirnov_test |mises_smirnov_omega2_normality |Clause 7. Confidence limits for random error. 7.4 For n > 50 measurement results |Ready |
|     |confidence_random_error |confidence_random_error |Clause 7. Confidence limits for random error. 7.5 Confidence limits for the random error of the measured value.|Ready|
|     |systematic_error |systematic_error_confidence |Clause 8. Confidence limits for the unexcluded systematic error. |Ready |
|     |total_error |total_error_confidence |Clause 9. Confidence limits for the error in the estimate of the measured value. |Ready |
|     |result_formatting |format_measurement_result |Clause 10. Presentation of results. 10.3 and Appendix E. |Ready |
|     | |format_measurement_components |Clause 10. Presentation of results. 10.4 |Ready |
|     |calc_save |calculate_and_save_protocol |Performs the full calculation in accordance with GOST R 8.736-2011 and saves the report to a text file. |Ready |
|other| vim | |  Video inclinometer|Soon |
|     | vms | |Vertical movement sensor |Soon |
|analysis|  | | |Soon |


## How to install
### Basic install

1. Don't forget to enable the python virtual environment;
2. Run `python -m pip3 install moncenterlib`
3. Ready to use.


### Install in Google Colab

1. Run `!python -m pip3 install moncenterlib`
2. Ready to use.

### Get the Source Code
MonCenterLib is actively developed on GitHub, where the code is [always available](https://github.com/DanielMamaev/MonCenterLib).

1. You can clone the public repository:
```
git clone https://github.com/DanielMamaev/MonCenterLib
```

2. Once you have a copy of the source, you can embed it in your own Python package, or install it into your site-packages easily:

```
cd moncenterlib
python -m pip install .
```

## Documentation and usage example
* See documentation [here](https://moncenterlib.readthedocs.io/)
* See examples code [here](examples/)

## Release History
* 1.1.0
    * Added new modules in the `gnss` package, including tools for downloading CODE products and preparing Bernese 5.2 input files.
    * Added new packages for station power simulation and statistical processing according to GOST R 8.736-2011.
    * Fixed bugs and improved stability in existing modules.
    * Updated and expanded example code and notebooks.
* 1.0.4
    * fix parse_pos_file method in gnss_time_series module
    * Added the ability to run multiple parallel processes. Module tools4rnx, class RtkLibConvbin
    * Added the ability to run multiple parallel processes. Module postprocessing, class RtkLibPost
    * New feature for get_daily_30s_data (station can be 'str' or 'list', type of file can be 'str' or 'list')
* 1.0.3
    * Remake class Stream2File.
    * New output data from 'start' method of class RtkLibConvbin. Update docstring and tests.
    * Fix several bugs. Add new method 'config2dict'. Update tests and docstrings.
* 1.0.2
    * Set timeout for ftps (5m).
    * Fix class Anubis.
    * Add new feature for cddis_client (imput range of dates or input list of dates).
* 1.0.1
    * fix rule for bin files (anubis_2.3_aarch64_linux, convbin_2.4.3-34_aarch64_linux, rnx2rtkp_2.4.3-34_aarch64_linux, str2str_2.4.3-34_aarch64_linux)
    * fix readme file
* 1.0.0
    * First release

## Contacts
Official e-mail:
+ moncenter@moncenter.ru

## License

## About

Project MonCenter - https://github.com/LoSG-GNSS/About-MonCenter

<img src="https://github.com/DanielMamaev/MonCenterLib/blob/main/img/ssugt.png?raw=true" width="400"/>


