Exemplo n.º 1
0
def test_prepare_data_multiprof():

    n_profiles = 3
    testFile = paths.file_defaultlidardata()
    t_values, z_values, rcss = utils.extract_data(
        testFile, to_extract=["rcs_1", "rcs_2"])
    rcs_1 = rcss["rcs_1"]
    rcs_2 = rcss["rcs_2"]

    params = utils.get_default_params()
    params["predictors"] = {
        "day": ["rcs_1", "rcs_2"],
        "night": ["rcs_1", "rcs_2"]
    }

    loc, dateofday, lat, lon = utils.where_and_when(testFile)
    t = 55
    coords = {
        "time": dt.datetime.utcfromtimestamp(t_values[t]),
        "lat": lat,
        "lon": lon
    }
    t_back = max(t - n_profiles + 1, 0)
    rcss = {"rcs_1": rcs_1[t_back:t + 1, :], "rcs_2": rcs_2[t_back:t + 1, :]}

    X, Z = prepare_data(coords, z_values, rcss=rcss, params=params)

    assert X.shape == (438, 2) and Z.shape == (438, )
Exemplo n.º 2
0
def test_extract_data_typenkeys():

    testFile = paths.file_defaultlidardata()
    needed_data = ["rcs_0", "rcs_1", "rcs_2"]
    t_values, z_values, rcss = extract_data(testFile, to_extract=needed_data)

    assert isinstance(rcss, dict) and set(rcss.keys()) == set(needed_data)
Exemplo n.º 3
0
def test_extract_data_shapes():

    testFile = paths.file_defaultlidardata()
    t_values, z_values, rcss = extract_data(testFile, to_extract=["rcs_1"])
    rcs_1 = rcss["rcs_1"]

    assert t_values.shape == (288, ) and z_values.shape == (
        146, ) and rcs_1.shape == (288, 146)
Exemplo n.º 4
0
def test_create_file_from_source():

    testFile = paths.file_defaultlidardata()
    outputFile = os.path.join(paths.resultrootdir,
                              os.path.split(testFile)[-1][:-3] + ".out.nc")
    create_file_from_source(testFile, outputFile)

    assert os.path.isfile(outputFile)
Exemplo n.º 5
0
def test_extract_testprofile():

    testFile = paths.file_defaultlidardata()
    z_values, rcs_1, rcs_2, coords = extract_testprofile(testFile,
                                                         profile_id=2,
                                                         return_coords=True)

    assert z_values.shape == (146, ) and rcs_1.shape == (146, )
Exemplo n.º 6
0
def test_adabl_blh_estimation():
    dataFile = paths.file_defaultlidardata()
    modelFile = paths.file_trainedmodel()
    scalerFile = paths.file_trainedscaler()

    blh_kabl = adabl_blh_estimation(
        dataFile, modelFile, scalerFile, storeInNetcdf=False
    )
    assert blh_kabl.shape==(288,) and np.isnan(blh_kabl).sum()==0
Exemplo n.º 7
0
def test_where_and_when():
    testFile = paths.file_defaultlidardata()

    trueLocation = 'Trappes'
    trueDay = dt.datetime(2018, 8, 2)
    trueLat = 48.7743
    trueLon = 2.0098

    location, day, lat, lon = where_and_when(testFile)

    assert location == trueLocation and day == trueDay and lat == trueLat and lon == trueLon
Exemplo n.º 8
0
def test_adabl_qualitymetrics():
    dataFile = paths.file_defaultlidardata()
    modelFile = paths.file_trainedmodel()
    scalerFile = paths.file_trainedscaler()

    scores = adabl_qualitymetrics(dataFile, modelFile, scalerFile)

    everythingOK = all([
        scores[0] < 1000.0,  # errl2
        scores[1] < 1000.0,  # errl1
        scores[2] < 3000.0,  # errl0
        scores[3] > 0.4,  # corr
        scores[4] < 12,  # chrono
        scores[5] == 0,  # n_invalid
    ])

    assert everythingOK
Exemplo n.º 9
0
def test_kabl_qualitymetrics():

    testFile = paths.file_defaultlidardata()
    scores = kabl_qualitymetrics(testFile)

    everythingOK = all([
        scores[0] < 1000.0,  # errl2
        scores[1] < 1000.0,  # errl1
        scores[2] < 3000.0,  # errl0
        scores[3] > 0.4,  # corr
        scores[4] > 1200,  # ch
        scores[5] < 0.4,  # db
        scores[6] > 0.7,  # sil
        scores[7] < 3,  # chrono
        scores[8] == 0,  # n_invalid
    ])

    assert everythingOK
Exemplo n.º 10
0
def test_prepare_data_singleprof():

    testFile = paths.file_defaultlidardata()
    z_values, rcs_1, rcs_2, coords = utils.extract_testprofile(
        testFile, profile_id=2, return_coords=True)

    params = utils.get_default_params()
    params["predictors"] = {
        "day": ["rcs_1", "rcs_2"],
        "night": ["rcs_1", "rcs_2"]
    }

    X, Z = prepare_data(coords,
                        z_values,
                        rcss={
                            "rcs_1": rcs_1,
                            "rcs_2": rcs_2
                        },
                        params=params)

    assert X.shape == (146, 2) and Z.shape == (146, )
Exemplo n.º 11
0
"""
Unitary tests of the functions in ../kabl/graphics.py
Must be executed inside the `tests/` directory
"""

# Local packages
from kabl.graphics import *
from kabl import paths
from kabl import utils
from kabl import core


# Test of quicklook_data
# ------------------------
print("\n --------------- Test of quicklook_data")
testFile = paths.file_defaultlidardata()
quicklook_data(testFile)

# Test of quicklook_testprofiles
# ------------------------
print("\n --------------- Test of quicklook_testprofiles")
testFile = paths.file_defaultlidardata()
quicklook_testprofiles(testFile)

# Test of blhs_over_profile
# ------------------------
print("\n --------------- Test of blhs_over_profile")
testFile = paths.file_defaultlidardata()
z_values, rcs_1, rcs_2, coords = utils.extract_testprofile(
    testFile, profile_id=3, return_coords=True
)
Exemplo n.º 12
0
from kabl import core
from kabl import utils
from kabl import graphics
from kabl import adabl
from kabl import paths

# Usual Python packages
import pickle
import numpy as np
import datetime as dt
import pytz
import sys
import time
import netCDF4 as nc

lidarFile = paths.file_defaultlidardata()
rsFile = paths.file_blhfromrs()

t_values, z_values, rcss = utils.extract_data(lidarFile,
                                              max_height=4620,
                                              to_extract=["rcs_1", "pbl"])
rcs_1 = rcss["rcs_1"]
blh_mnf = rcss["pbl"]

# Estimation with KABL
# ----------------------
params = utils.get_default_params()
params["n_clusters"] = 3
params["predictors"] = {"day": ["rcs_1"], "night": ["rcs_1", "rcs_2"]}
params["n_profiles"] = 1
params["init"] = "advanced"
Exemplo n.º 13
0
def test_blh_estimation_returnlabels():

    testFile = paths.file_defaultlidardata()
    blh, labels = blh_estimation_returnlabels(testFile)
    assert labels.shape == (288, 146) and blh.shape == (
        288, ) and np.isnan(blh).sum() == 0
Exemplo n.º 14
0
def test_blh_estimation():

    testFile = paths.file_defaultlidardata()
    blh = blh_estimation(testFile)
    assert blh.shape == (288, ) and np.isnan(blh).sum() == 0