Giter VIP home page Giter VIP logo

kabl's Introduction

KABL: Kmeans for Atmospheric Boundary Layer. A program to derive boudary layer height from backscatter profile

What is KABL?

KABL is a free software to derive atmospheric boundary layer height from backscatter profiles measured by aerosol lidars or ceilometers. It is based on K-means algorithm: it automatically groups the points of the profile and identify one these groups as the boundary layer.

Alt

How to use it?

The KABL package can be installed by following the installation instructions below. Once installed, you will find ready-to-use scripts in the examples directory. They use the data samples given in the directory data_samples.

Contacts

This software is edited by Meteo-France.

Licence

This software is under CeCILL licence (open source, French equivalent to GNU/GPL licence). Terms are in the LICENCE.txt file.

Installation

Installing dependencies

With Conda (recommended)

Conda is a package manager very helpful in Python. If you do not have conda, you can download it here.

The advantage of using conda the way described here is to isolate the python configuration needed for KABL from the rest your current configuration.

conda create -n kabltest python=3.7   # Create a new environnement with Python 3.7
conda activate kabltest               # Enter this environment

Now the text (kabltest) should appear before your prompt

conda install --file requirements.txt

With pip

For an installation with pip, follow these instructions:

pip install -r requirements.txt 

Installing the KABL package

This can be done only with pip. In the directory where is the setup.py, run:

pip install -e .

Use KABL

Once the installation is ready (prompt should display (kabltest) if you are using conda), you can execute the ready-to-use script in the examples directory:

python try_kabl_and_adabl.py

More information about the package and its parameters are given below.

The package

Description

KABL package is located in the kabl directory. It contains 6 Python source codes :

  • adabl.py: module containing the core functions of ADABL.
  • core.py: module containing the core functions of KABL.
  • ephemerid.py: module to calculate sunrise and sunset from position. From Michel Landers
  • paths.py: module containing all paths to files and directory, OS-indepedently.
  • graphics.py: module containing all graphics.
  • utils.py: module containing basic functions used in KABL and in graphics. They depend on other famous Python packages. Here is the dependency graph:

Alt

The algorithm

As input, KABL takes daily backscatter profiles processed by raw2l1 software. As output, it gives the time series of BLH over the day. By default, it writes it into the same netcdf file as the input. To perform the BLH estimation over one day (as shown in example), the previous functions are used in the following flowchart:

Alt

Tunable parameters

The script try_kabl_and_adabl.py contains a dictionary named params. This dictionary controls all the tunable settings for KABL. The significations of these settings, as well as their possible values, are explained in the paper associated to this directory (Rieutord et al., 2020). You also access them in the docstring of utils.get_default_params():

from kabl import utils
help(utils.get_default_params)

Parameters are used at several moment in flowchart, as explained in the following figure:

Alt

kabl's People

Contributors

thomasrieutord avatar ziskinziv 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.