Projections

Default projection

class nes.nc_projections.default_nes.Nes(comm: Comm | None = None, path: str | None = None, info: bool = False, dataset: Dataset | None = None, parallel_method: str = 'Y', avoid_first_hours: int = 0, avoid_last_hours: int = 0, first_level: int = 0, last_level: int | None = None, create_nes: bool = False, balanced: bool = False, times: List[datetime] | None = None, **kwargs)[source]

Bases: object

A class to handle netCDF data with parallel processing capabilities using MPI.

Attributes

commMPI.Comm

MPI communicator.

rankint

MPI rank.

masterbool

True when rank == 0.

sizeint

Size of the communicator.

infobool

Indicates if you want to print reading/writing info.

__ini_pathstr

Path to the original file to read when open_netcdf is called.

hours_startint

Number of hours to avoid from the first original values.

hours_endint

Number of hours to avoid from the last original values.

datasetDataset

netcdf4-python Dataset.

variablesDict[str, Dict[str, Any]]

Variables information. The dictionary structure is: {

var_name: {

“data”: ndarray or None, # Array values or None if the variable is not loaded. attr_name: attr_value, # Variable attributes. …

}

_full_timeList[datetime]

Complete list of original time step values.

_full_levDict[str, array]

Vertical level dictionary with the complete “data” key for all the values and the rest of the attributes. {

“data”: ndarray, # Array of vertical level values. attr_name: attr_value, # Vertical level attributes. …

}

_full_latdict

Latitudes dictionary with the complete “data” key for all the values and the rest of the attributes. {

“data”: ndarray, # Array of latitude values. attr_name: attr_value, # Latitude attributes. …

}

_full_londict

Longitudes dictionary with the complete “data” key for all the values and the rest of the attributes. {

“data”: ndarray, # Array of longitude values. attr_name: attr_value, # Longitude attributes. …

}

_full_lat_bndsdict

Latitude bounds dictionary with the complete “data” key for the latitudinal boundaries of each grid and the rest of the attributes. {

“data”: ndarray, # Array of latitude bounds. attr_name: attr_value, # Latitude bounds attributes. …

}

_full_lon_bndsdict

Longitude bounds dictionary with the complete “data” key for the longitudinal boundaries of each grid and the rest of the attributes. {

“data”: ndarray, # Array of longitude bounds. attr_name: attr_value, # Longitude bounds attributes. …

}

parallel_methodstr

Parallel method to read/write. Can be chosen from any of the following axes to parallelize: “T”, “Y”, or “X”.

read_axis_limitsdict

Dictionary with the 4D limits of the rank data to read. Structure: {

“t_min”: int, “t_max”: int, # Time axis limits. “z_min”: int, “z_max”: int, # Vertical axis limits. “y_min”: int, “y_max”: int, # Latitudinal axis limits. “x_min”: int, “x_max”: int, # Longitudinal axis limits.

}

write_axis_limitsdict

Dictionary with the 4D limits of the rank data to write. Structure: {

“t_min”: int, “t_max”: int, # Time axis limits. “z_min”: int, “z_max”: int, # Vertical axis limits. “y_min”: int, “y_max”: int, # Latitudinal axis limits. “x_min”: int, “x_max”: int, # Longitudinal axis limits.

}

timeList[datetime]

List of time steps of the rank data.

levdict

Vertical levels dictionary with the portion of “data” corresponding to the rank values. Structure: {

“data”: ndarray, # Array of vertical level values for the rank. attr_name: attr_value, # Vertical level attributes. …

}

latdict

Latitudes dictionary with the portion of “data” corresponding to the rank values. Structure: {

“data”: ndarray, # Array of latitude values for the rank. attr_name: attr_value, # Latitude attributes. …

}

londict

Longitudes dictionary with the portion of “data” corresponding to the rank values. Structure: {

“data”: ndarray, # Array of longitude values for the rank. attr_name: attr_value, # Longitude attributes. …

}

lat_bndsdict

Latitude bounds dictionary with the portion of “data” for the latitudinal boundaries corresponding to the rank values. Structure: {

“data”: ndarray, # Array of latitude bounds for the rank. attr_name: attr_value, # Latitude bounds attributes. …

}

lon_bndsdict

Longitude bounds dictionary with the portion of “data” for the longitudinal boundaries corresponding to the rank values. Structure: {

“data”: ndarray, # Array of longitude bounds for the rank. attr_name: attr_value, # Longitude bounds attributes. …

}

global_attrsdict

Global attributes with the attribute name as key and data as values. Structure: {

attr_name: attr_value, # Global attribute name and value. …

}

_var_dimtuple

Name of the Y and X dimensions for the variables.

_lat_dimtuple

Name of the dimensions of the Latitude values.

_lon_dimtuple

Name of the dimensions of the Longitude values.

projectionProj

Grid projection.

projection_datadict

Dictionary with the projection information. Structure: {

proj_param: proj_value, # Projection parameters. …

}

add_4d_vertical_info(info_to_add)[source]

To add the vertical information from other source.

Parameters

info_to_addnes.Nes, str

Nes object with the vertical information as variable or str with the path to the NetCDF file that contains the vertical data.

add_variables_to_shapefile(var_list, idx_lev=0, idx_time=0)[source]

Add variables data to shapefile.

var_listList or str

Variables to be loaded and saved in the shapefile.

idx_levint

Index of vertical level for which the data will be saved in the shapefile.

idx_timeint

Index of time for which the data will be saved in the shapefile.

append_time_step_data(i_time, out_format='DEFAULT')[source]

Fill the netCDF data for the indicated index time.

Parameters

i_timeint

index of the time step to write

out_formatstr

Indicates the output format type to change the units (if needed)

static calculate_geometry_area(geometry_list, earth_radius_minor_axis=6356752.3142, earth_radius_major_axis=6378137.0)[source]

Get coordinate bounds and call function to calculate the area of each cell of a set of geometries.

Parameters

geometry_listList

A List with polygon geometries.

earth_radius_minor_axisfloat

Radius of the minor axis of the Earth.

earth_radius_major_axisfloat

Radius of the major axis of the Earth.

calculate_grid_area(overwrite=True)[source]

Get coordinate bounds and call function to calculate the area of each cell of a grid.

Parameters

selfnes.Nes

Source projection Nes Object.

overwritebool

Indicates if we want to overwrite the grid area.

clear_communicator()[source]

Erase the communicator and the parallelization indexes.

close()[source]

Close the NetCDF with netcdf4-python.

concatenate(aux_nessy)[source]

Concatenate different variables into the same NES object.

Parameters

aux_nessyNes, str

Nes object or str with the path to the NetCDF file that contains the variables to add.

Returns

list

A List of var names added.

copy(copy_vars: bool = False)[source]

Copy the Nes object. The copy will avoid to copy the communicator, dataset and variables by default.

Parameters

copy_vars: bool

Indicates if you want to copy the variables (in lazy mode).

Returns

nessyNes

Copy of the Nes object.

create_providentia_exp_centre_coordinates()[source]

Calculate centre latitudes and longitudes from original coordinates and store as 2D arrays.

Returns

model_centre_latdict

Dictionary with data of centre coordinates for latitude in 2D (latitude, longitude).

model_centre_londict

Dictionary with data of centre coordinates for longitude in 2D (latitude, longitude).

create_providentia_exp_grid_edge_coordinates()[source]

Calculate grid edge latitudes and longitudes and get model grid outline.

Returns

grid_edge_latdict

Dictionary with data of grid edge latitudes.

grid_edge_londict

Dictionary with data of grid edge longitudes.

create_shapefile()[source]

Create spatial GeoDataFrame (shapefile).

Returns

shapefileGeoPandasDataFrame

Shapefile dataframe.

create_spatial_bounds()[source]

Calculate longitude and latitude bounds and set them.

daily_statistic(op, type_op='calendar')[source]

Calculate daily statistic.

Parameters

opstr

Statistic to perform. Accepted values: “max”, “mean” and “min”.

type_opstr

Type of statistic to perform. Accepted values: “calendar”, “alltsteps”, and “withoutt0”. - “calendar”: Calculate the statistic using the time metadata. It will avoid single time step by day

calculations

  • “alltsteps”: Calculate a single time statistic with all the time steps.

  • “withoutt0”: Calculate a single time statistic with all the time steps avoiding the first one.

find_time_id(time)[source]

Find index of time in time array.

Parameters

timedatetime

Time element.

Returns

int

Index of time element.

free_vars(var_list)[source]

Erase the selected variables from the variables’ information.

Parameters

var_listList or str

List (or single string) of the variables to be loaded.

get_centroids_from_coordinates()[source]

Get centroids from geographical coordinates.

Returns

centroids_gdf: GeoPandasDataFrame

Centroids dataframe.

get_climatology()[source]

Get whether the dataset represents climatological data.

Returns

bool

True if the dataset represents climatological data, False otherwise.

static get_earth_radius(ellps)[source]

Get minor and major axis of Earth.

Parameters

ellpsstr

Spatial reference system.

get_fids(use_read=False)[source]

Obtain the FIDs in a 2D format.

Parameters

use_readbool

Indicate if you want to use the read_axis_limits

Returns

array

2D array with the FID data.

get_full_latitudes() Dict[str, Any][source]

Retrieve the complete latitude information.

Returns

Dict[str, Any]

A dictionary containing the complete latitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of latitude values. attr_name: attr_value, # Latitude attributes. …

}

get_full_latitudes_boundaries() Dict[str, Any][source]

Retrieve the complete latitude boundaries information.

Returns

Dict[str, Any]

A dictionary containing the complete latitude boundaries data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of latitude boundaries values. attr_name: attr_value, # Latitude boundaries attributes. …

}

get_full_levels() Dict[str, Any][source]

Retrieve the complete vertical level information.

Returns

Dict[str, Any]

A dictionary containing the complete vertical level data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of vertical level values. attr_name: attr_value, # Vertical level attributes. …

}

get_full_longitudes() Dict[str, Any][source]

Retrieve the complete longitude information.

Returns

Dict[str, Any]

A dictionary containing the complete longitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of longitude values. attr_name: attr_value, # Longitude attributes. …

}

get_full_longitudes_boundaries() Dict[str, Any][source]

Retrieve the complete longitude boundaries information.

Returns

Dict[str, Any]

A dictionary containing the complete longitude boundaries data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of longitude boundaries values. attr_name: attr_value, # Longitude boundaries attributes. …

}

get_full_shape()[source]

Obtain the Full 2D shape of tha data

Returns

tuple

2D shape of tha data.

get_full_time_bnds() List[datetime][source]

Retrieve the complete list of original time step boundaries.

Returns

List[datetime]

The complete list of original time step boundary values from the netCDF data.

get_full_times() List[datetime][source]

Retrieve the complete list of original time step values.

Returns

List[datetime]

The complete list of original time step values from the netCDF data.

get_spatial_bounds_mesh_format()[source]

Get the spatial bounds in the pcolormesh format:

see: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.pcolormesh.html

Returns

lon_bnds_meshnumpy.ndarray

Longitude boundaries in the mesh format

lat_bnds_meshnumpy.ndarray

Latitude boundaries in the mesh format

property get_time_interval

Calculate the interrval of hours between time steps.

Returns

int

Number of hours between time steps.

interpolate_horizontal(dst_grid, weight_matrix_path=None, kind='NearestNeighbour', n_neighbours=4, info=False, to_providentia=False, only_create_wm=False, wm=None, flux=False)[source]

Horizontal methods from the current grid to another one.

Parameters

dst_gridnes.Nes

Final projection Nes object.

weight_matrix_pathstr, None

Path to the weight matrix to read/create.

kindstr

Kind of horizontal methods. choices = [“NearestNeighbour”, “Conservative”].

n_neighbours: int

Used if kind == NearestNeighbour. Number of nearest neighbours to interpolate. Default: 4.

info: bool

Indicates if you want to print extra info during the methods process.

to_providentiabool

Indicates if we want the interpolated grid in Providentia format.

only_create_wmbool

Indicates if you want to only create the Weight Matrix.

wmNes

Weight matrix Nes File.

fluxbool

Indicates if you want to calculate the weight matrix for flux variables.

interpolate_vertical(new_levels, new_src_vertical=None, kind='linear', extrapolate=None, info=None, overwrite=False)[source]

Vertical interpolation function.

Parameters

selfNes

Source Nes object.

new_levelsList

A List of new vertical levels.

new_src_verticalnes.Nes, str

Nes object with the vertical information as variable or str with the path to the NetCDF file that contains the vertical data.

kindstr

Vertical methods type.

extrapolatebool or tuple or None or number or NaN
If bool:
  • If True, both extrapolation options are set to “extrapolate”.

  • If False, extrapolation options are set to (“bottom”, “top”).

If tuple:
  • The first element represents the extrapolation option for the lower bound.

  • The second element represents the extrapolation option for the upper bound.

  • If any element is bool:
    • If True, it represents “extrapolate”.

    • If False:
      • If it”s the first element, it represents “bottom”.

      • If it”s the second element, it represents “top”.

  • If any element is None, it is replaced with numpy.nan.

  • Other numeric values are kept as they are.

  • If any element is NaN, it is kept as NaN.

If None:
  • Both extrapolation options are set to (NaN, NaN).

If number:
  • Both extrapolation options are set to the provided number.

If NaN:
  • Both extrapolation options are set to NaN.

info: None, bool

Indicates if you want to print extra information.

overwrite: bool

Indicates if you want to compute the vertical interpolation in the same object or not.

keep_vars(var_list)[source]

Keep the selected variables and erases the rest.

Parameters

var_listList or str

List (or single string) of the variables to be loaded.

last_time_step()[source]

Modify variables to keep only the last time step.

load(var_list=None)[source]

Load of the selected variables.

That function will fill the variable “data” key with the corresponding values.

Parameters

var_listList, str, None

List (or single string) of the variables to be loaded.

static lon_lat_to_cartesian_ecef(lon, lat)[source]

# Convert observational/model geographic longitude/latitude coordinates to cartesian ECEF (Earth Centred, # Earth Fixed) coordinates, assuming WGS84 datum and ellipsoid, and that all heights = 0. # ECEF coordinates represent positions (in meters) as X, Y, Z coordinates, approximating the earth surface # as an ellipsoid of revolution. # This conversion is for the subsequent calculation of Euclidean distances of the model grid cell centres # from each observational station. # Defining the distance between two points on the earth’s surface as simply the Euclidean distance # between the two lat/lon pairs could lead to inaccurate results depending on the distance # between two points (i.e. 1 deg. of longitude varies with latitude).

Parameters

lonarray

Longitude values.

latarray

Latitude values.

static new(comm=None, path=None, info=False, dataset=None, parallel_method='Y', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, **kwargs)[source]

Initialize the Nes class.

Parameters

comm: MPI.COMM

MPI Communicator.

path: str

Path to the NetCDF to initialize the object.

info: bool

Indicates if you want to get reading/writing info.

dataset: Dataset

NetCDF4-python Dataset to initialize the class.

parallel_methodstr

Indicates the parallelization method that you want. Default over Y axis accepted values: [“X”, “Y”, “T”].

avoid_first_hoursint

Number of hours to remove from first time steps.

avoid_last_hoursint

Number of hours to remove from last time steps.

first_levelint

Index of the first level to use.

last_levelint or None

Index of the last level to use. None if it is the last.

create_nesbool

Indicates if you want to create the object from scratch (True) or through an existing file.

balancedbool

Indicates if you want a balanced parallelization or not. Balanced dataset cannot be written in chunking mode.

timesList[datetime] or None

List of times to substitute the current ones while creation.

reverse_level_direction()[source]

Reverse the current direction of the vertical level values.

Returns

bool

True if the direction was reversed successfully.

rolling_mean(var_list=None, hours=8)[source]

Calculate rolling mean for given hours

Parameters

var_list: List, str, None

List (or single string) of the variables to be loaded.

hoursint, optional

Window hours to calculate rolling mean, by default 8

Returns

Nes

A Nes object

sel(hours_start=None, time_min=None, hours_end=None, time_max=None, lev_min=None, lev_max=None, lat_min=None, lat_max=None, lon_min=None, lon_max=None)[source]

Select a slice of time, vertical level, latitude, or longitude given minimum and maximum limits.

Parameters

hours_startint, optional

The number of hours from the start to begin the selection.

time_mindatetime, optional

The minimum datetime for the time selection. Mutually exclusive with hours_start.

hours_endint, optional

The number of hours from the end to end the selection.

time_maxdatetime, optional

The maximum datetime for the time selection. Mutually exclusive with hours_end.

lev_minint, optional

The minimum vertical level index for the selection.

lev_maxint, optional

The maximum vertical level index for the selection.

lat_minfloat, optional

The minimum latitude for the selection.

lat_maxfloat, optional

The maximum latitude for the selection.

lon_minfloat, optional

The minimum longitude for the selection.

lon_maxfloat, optional

The maximum longitude for the selection.

Returns

None

Raises

ValueError

If any variables are already loaded or if mutually exclusive parameters are both provided.

Notes

This method updates the selection criteria for the dataset and recalculates the read and write axis limits accordingly. It also updates the time, level, latitude, and longitude slices based on the new criteria.

sel_time(time, inplace=True)[source]

To select only one time step.

Parameters

timedatetime

Time stamp to select.

inplacebool

Indicates if you want a copy with the selected time step (False) or to modify te existing one (True).

Returns

Nes

A Nes object with the data (and metadata) of the selected time step.

set_climatology(is_climatology)[source]

Set whether the dataset represents climatological data.

Parameters

is_climatologybool

A boolean indicating if the dataset represents climatological data.

Returns

None

Raises

TypeError

If is_climatology is not a boolean.

set_communicator(comm)[source]

Set a new communicator and the correspondent parallelization indexes.

Parameters

comm: MPI.COMM

Communicator to be set.

set_full_latitudes(data: Dict[str, Any]) None[source]

Set the complete latitude information.

Parameters

dataDict[str, Any]

A dictionary containing the complete latitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of latitude values. attr_name: attr_value, # Latitude attributes. …

}

set_full_latitudes_boundaries(data: Dict[str, Any]) None[source]

Set the complete latitude boundaries information.

Parameters

dataDict[str, Any]

A dictionary containing the complete latitude boundaries data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of latitude boundaries values. attr_name: attr_value, # Latitude boundaries attributes. …

}

set_full_levels(data: Dict[str, Any]) None[source]

Set the complete vertical level information.

Parameters

dataDict[str, Any]

A dictionary containing the complete vertical level data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of vertical level values. attr_name: attr_value, # Vertical level attributes. …

}

set_full_longitudes(data: Dict[str, Any]) None[source]

Set the complete longitude information.

Parameters

dataDict[str, Any]

A dictionary containing the complete longitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of longitude values. attr_name: attr_value, # Longitude attributes. …

}

set_full_longitudes_boundaries(data: Dict[str, Any]) None[source]

Set the complete longitude boundaries information.

Parameters

dataDict[str, Any]

A dictionary containing the complete longitude boundaries data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of longitude boundaries values. attr_name: attr_value, # Longitude boundaries attributes. …

}

set_full_time_bnds(data: List[datetime]) None[source]

Set the complete list of original time step boundaries.

Parameters

dataList[datetime]

The complete list of original time step boundary values to set.

set_full_times(data: List[datetime]) None[source]

Set the complete list of original time step values.

Parameters

dataList[datetime]

The complete list of original time step values to set.

set_level_direction(new_direction)[source]

Set the direction of the vertical level values.

Parameters

new_directionstr

The new direction for the vertical levels. Must be either “up” or “down”.

Returns

bool

True if the direction was set successfully.

Raises

ValueError

If new_direction is not “up” or “down”.

set_levels(levels)[source]

Modify the original level values with new ones.

Parameters

levelsdict

Dictionary with the new level information to be set.

set_strlen(strlen=75)[source]

Set the strlen

75 is the standard value used in GHOST data

Parameters

strlenint or None

Max length of the string

set_time(time_list)[source]

Modify the original level values with new ones.

Parameters

time_listList[datetime]

List of time steps

set_time_bnds(time_bnds)[source]

Modify the original time bounds values with new ones.

Parameters

time_bndsList

AList with the new time bounds information to be set.

set_time_resolution(new_resolution)[source]

Set the time resolution for the dataset.

Parameters

new_resolutionstr

The new time resolution. Accepted values are “second”, “seconds”, “minute”, “minutes”, “hour”, “hours”, “day”, “days”.

Returns

bool

True if the time resolution was set successfully.

Raises

ValueError

If new_resolution is not one of the accepted values.

spatial_join(ext_shp, method=None, var_list=None, info=False, apply_bbox=True)[source]

Compute overlay intersection of two GeoPandasDataFrames.

Parameters

ext_shpGeoPandasDataFrame or str

File or path from where the data will be obtained on the intersection.

methodstr

Overlay method. Accepted values: [“nearest”, “intersection”, “centroid”].

var_listList or None

Variables that will be included in the resulting shapefile.

infobool

Indicates if you want to print the process info.

apply_bboxbool

Indicates if you want to reduce the shapefile to a bbox.

sum_axis(axis='Z')[source]
to_dtype(data_type='float32')[source]

Cast variables data into selected data type.

Parameters

data_typestr or Type

Data type, by default “float32”

to_grib2(path, grib_keys, grib_template_path, lat_flip=True, info=False)[source]

Write output file with grib2 format.

Parameters

pathstr

Path to the output file.

grib_keysdict

Dictionary with the grib2 keys.

grib_template_pathstr

Path to the grib2 file to use as template.

lat_flipbool

Indicates if the latitude values (and data) has to be flipped

infobool

Indicates if you want to print extra information during the process.

to_netcdf(path, compression_level=0, serial=False, info=False, chunking=False, nc_type='NES', keep_open=False)[source]

Write the netCDF output file.

Parameters

pathstr

Path to the output netCDF file.

compression_levelint

Level of compression (0 to 9) Default: 0 (no compression).

serialbool

Indicates if you want to write in serial or not. Default: False.

infobool

Indicates if you want to print the information of each writing step by stdout Default: False.

chunkingbool

Indicates if you want a chunked netCDF output. Only available with non-serial writes. Default: False.

nc_typestr

Type to NetCDf to write. “CAMS_RA” or “NES”

keep_openbool

Indicates if you want to keep open the NetCDH to fill the data by time-step

to_shapefile(path, time=None, lev=None, var_list=None)[source]

Create shapefile from NES data.

  1. Create grid shapefile.

  2. Add variables to shapefile (as independent function).

  3. Write shapefile.

Parameters

pathstr

Path to the output file.

timedatetime

Time stamp to select.

levint

Vertical level to select.

var_listList, str, None

List (or single string) of the variables to be loaded and saved in the shapefile.

write_shapefile(path)[source]

Save spatial GeoDataFrame (shapefile).

Parameters

pathstr

Path to the output file.

Regulat lat lon projection

class nes.nc_projections.latlon_nes.LatLonNes(comm=None, path=None, info=False, dataset=None, parallel_method='Y', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, **kwargs)[source]

Bases: Nes

Attributes

_var_dimtuple

A Tuple with the name of the Y and X dimensions for the variables. (“lat”, “lon”) for a regular latitude-longitude projection.

_lat_dimtuple

A Tuple with the name of the dimensions of the Latitude values. (“lat”, ) for a regular latitude-longitude projection.

_lon_dimtuple

A Tuple with the name of the dimensions of the Longitude values. (“lon”, ) for a regular latitude-longitude projection.

create_providentia_exp_centre_coordinates()[source]

Calculate centre latitudes and longitudes from original coordinates and store as 2D arrays.

Returns

model_centre_latdict

Dictionary with data of centre coordinates for latitude in 2D (latitude, longitude).

model_centre_londict

Dictionary with data of centre coordinates for longitude in 2D (latitude, longitude).

create_providentia_exp_grid_edge_coordinates()[source]

Calculate grid edge latitudes and longitudes and get model grid outline.

Returns

grid_edge_latdict

Dictionary with data of grid edge latitudes.

grid_edge_londict

Dictionary with data of grid edge longitudes.

static new(comm=None, path=None, info=False, dataset=None, parallel_method='Y', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, **kwargs)[source]

Initialize the Nes class.

Parameters

comm: MPI.COMM

MPI Communicator.

path: str

Path to the NetCDF to initialize the object.

info: bool

Indicates if you want to get reading/writing info.

dataset: Dataset

NetCDF4-python Dataset to initialize the class.

parallel_methodstr

Indicates the parallelization method that you want. Default: “Y”. Accepted values: [“X”, “Y”, “T”].

avoid_first_hoursint

Number of hours to remove from first time steps.

avoid_last_hoursint

Number of hours to remove from last time steps.

first_levelint

Index of the first level to use.

last_levelint, None

Index of the last level to use. None if it is the last.

create_nesbool

Indicates if you want to create the object from scratch (True) or through an existing file.

balancedbool

Indicates if you want a balanced parallelization or not. Balanced dataset cannot be written in chunking mode.

timeslist, None

List of times to substitute the current ones while creation.

to_grib2(path, grib_keys, grib_template_path, lat_flip=False, info=False)[source]

Write output file with grib2 format.

Parameters

lat_flipbool

Indicates if the latitudes have to be flipped

pathstr

Path to the output file.

grib_keysdict

Dictionary with the grib2 keys.

grib_template_pathstr

Path to the grib2 file to use as template.

infobool

Indicates if you want to print extra information during the process.

LCC projection

class nes.nc_projections.lcc_nes.LCCNes(comm=None, path=None, info=False, dataset=None, parallel_method='Y', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, **kwargs)[source]

Bases: Nes

Attributes

_full_ydict

Y coordinates dictionary with the complete “data” key for all the values and the rest of the attributes.

_full_xdict

X coordinates dictionary with the complete “data” key for all the values and the rest of the attributes.

ydict

Y coordinates dictionary with the portion of “data” corresponding to the rank values.

xdict

X coordinates dictionary with the portion of “data” corresponding to the rank values.

_var_dimtuple

A Tuple with the name of the Y and X dimensions for the variables. (“y”, “x”, ) for an LCC projection.

_lat_dimtuple

A Tuple with the name of the dimensions of the Latitude values. (“y”, “x”, ) for an LCC projection.

_lon_dimtuple

ATuple with the name of the dimensions of the Longitude values. (“y”, “x”) for an LCC projection.

create_providentia_exp_centre_coordinates()[source]

Calculate centre latitudes and longitudes from original coordinates and store as 2D arrays.

Returns

model_centre_latdict

Dictionary with data of centre coordinates for latitude in 2D (latitude, longitude).

model_centre_londict

Dictionary with data of centre coordinates for longitude in 2D (latitude, longitude).

create_providentia_exp_grid_edge_coordinates()[source]

Calculate grid edge latitudes and longitudes and get model grid outline.

Returns

grid_edge_latdict

Dictionary with data of grid edge latitudes.

grid_edge_londict

Dictionary with data of grid edge longitudes.

create_shapefile()[source]

Create spatial GeoDataFrame (shapefile).

Returns

shapefileGeoPandasDataFrame

Shapefile dataframe.

create_spatial_bounds()[source]

Calculate longitude and latitude bounds and set them.

get_centroids_from_coordinates()[source]

Get centroids from geographical coordinates.

Returns

centroids_gdf: GeoPandasDataFrame

Centroids dataframe.

get_full_x() Dict[str, Any][source]

Retrieve the complete X information.

Returns

Dict[str, Any]

A dictionary containing the complete longitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of longitude values. attr_name: attr_value, # Longitude attributes. …

}

get_full_y() Dict[str, Any][source]

Retrieve the complete Y information.

Returns

Dict[str, Any]

A dictionary containing the complete latitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of latitude values. attr_name: attr_value, # Latitude attributes. …

}

static new(comm=None, path=None, info=False, dataset=None, parallel_method='Y', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, **kwargs)[source]

Initialize the Nes class.

Parameters

comm: MPI.COMM

MPI Communicator.

path: str

Path to the NetCDF to initialize the object.

info: bool

Indicates if you want to get reading/writing info.

dataset: Dataset

NetCDF4-python Dataset to initialize the class.

parallel_methodstr

Indicates the parallelization method that you want. Default: “Y”. Accepted values: [“X”, “Y”, “T”].

avoid_first_hoursint

Number of hours to remove from first time steps.

avoid_last_hoursint

Number of hours to remove from last time steps.

first_levelint

Index of the first level to use.

last_levelint, None

Index of the last level to use. None if it is the last.

create_nesbool

Indicates if you want to create the object from scratch (True) or through an existing file.

balancedbool

Indicates if you want a balanced parallelization or not. Balanced dataset cannot be written in chunking mode.

timeslist, None

List of times to substitute the current ones while creation.

set_full_x(data: Dict[str, Any]) None[source]

Set the complete rotated longitude information.

Parameters

dataDict[str, Any]

A dictionary containing the complete longitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of longitude values. attr_name: attr_value, # Longitude attributes. …

}

set_full_y(data: Dict[str, Any]) None[source]

Set the complete Y information.

Parameters

dataDict[str, Any]

A dictionary containing the complete latitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of latitude values. attr_name: attr_value, # Latitude attributes. …

}

to_grib2(path, grib_keys, grib_template_path, lat_flip=False, info=False)[source]

Write output file with grib2 format.

Parameters

lat_flipbool

Indicates if the latitudes need to be flipped Up-Down or Down-Up. Default False.

pathstr

Path to the output file.

grib_keysdict

Dictionary with the grib2 keys.

grib_template_pathstr

Path to the grib2 file to use as template.

infobool

Indicates if you want to print extra information during the process.

Mercator projection

class nes.nc_projections.mercator_nes.MercatorNes(comm=None, path=None, info=False, dataset=None, parallel_method='Y', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, **kwargs)[source]

Bases: Nes

Attributes

_full_ydict

Y coordinates dictionary with the complete “data” key for all the values and the rest of the attributes.

_full_xdict

X coordinates dictionary with the complete “data” key for all the values and the rest of the attributes.

ydict

Y coordinates dictionary with the portion of “data” corresponding to the rank values.

xdict

X coordinates dictionary with the portion of “data” corresponding to the rank values.

_var_dimtuple

A Tuple with the name of the Y and X dimensions for the variables. (“y”, “x”) for a Mercator projection.

_lat_dimtuple

A Tuple with the name of the dimensions of the Latitude values. (“y”, “x”) for a Mercator projection.

_lon_dimtuple

A Tuple with the name of the dimensions of the Longitude values. (“y”, “x”) for a Mercator projection.

create_providentia_exp_centre_coordinates()[source]

Calculate centre latitudes and longitudes from original coordinates and store as 2D arrays.

Returns

model_centre_latdict

Dictionary with data of centre coordinates for latitude in 2D (latitude, longitude).

model_centre_londict

Dictionary with data of centre coordinates for longitude in 2D (latitude, longitude).

create_providentia_exp_grid_edge_coordinates()[source]

Calculate grid edge latitudes and longitudes and get model grid outline.

Returns

grid_edge_latdict

Dictionary with data of grid edge latitudes.

grid_edge_londict

Dictionary with data of grid edge longitudes.

create_shapefile()[source]

Create spatial GeoDataFrame (shapefile).

Returns

shapefileGeoPandasDataFrame

Shapefile dataframe.

create_spatial_bounds()[source]

Calculate longitude and latitude bounds and set them.

get_centroids_from_coordinates()[source]

Get centroids from geographical coordinates.

Returns

centroids_gdf: GeoPandasDataFrame

Centroids dataframe.

get_full_x() Dict[str, Any][source]

Retrieve the complete X information.

Returns

Dict[str, Any]

A dictionary containing the complete longitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of longitude values. attr_name: attr_value, # Longitude attributes. …

}

get_full_y() Dict[str, Any][source]

Retrieve the complete Y information.

Returns

Dict[str, Any]

A dictionary containing the complete latitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of latitude values. attr_name: attr_value, # Latitude attributes. …

}

static new(comm=None, path=None, info=False, dataset=None, parallel_method='Y', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, **kwargs)[source]

Initialize the Nes class.

Parameters

comm: MPI.COMM

MPI Communicator.

path: str

Path to the NetCDF to initialize the object.

info: bool

Indicates if you want to get reading/writing info.

dataset: Dataset

NetCDF4-python Dataset to initialize the class.

parallel_methodstr

Indicates the parallelization method that you want. Default: “Y”. Accepted values: [“X”, “Y”, “T”].

avoid_first_hoursint

Number of hours to remove from first time steps.

avoid_last_hoursint

Number of hours to remove from last time steps.

first_levelint

Index of the first level to use.

last_levelint, None

Index of the last level to use. None if it is the last.

create_nesbool

Indicates if you want to create the object from scratch (True) or through an existing file.

balancedbool

Indicates if you want a balanced parallelization or not. Balanced dataset cannot be written in chunking mode.

timeslist, None

List of times to substitute the current ones while creation.

set_full_x(data: Dict[str, Any]) None[source]

Set the complete rotated longitude information.

Parameters

dataDict[str, Any]

A dictionary containing the complete longitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of longitude values. attr_name: attr_value, # Longitude attributes. …

}

set_full_y(data: Dict[str, Any]) None[source]

Set the complete Y information.

Parameters

dataDict[str, Any]

A dictionary containing the complete latitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of latitude values. attr_name: attr_value, # Latitude attributes. …

}

to_grib2(path, grib_keys, grib_template_path, lat_flip=False, info=False)[source]

Write output file with grib2 format.

Parameters

lat_flipbool

Indicates if you want to flip latitudes Up-Down

pathstr

Path to the output file.

grib_keysdict

Dictionary with the grib2 keys.

grib_template_pathstr

Path to the grib2 file to use as template.

infobool

Indicates if you want to print extra information during the process.

Points projection

class nes.nc_projections.points_nes.PointsNes(comm=None, path=None, info=False, dataset=None, parallel_method='X', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, **kwargs)[source]

Bases: Nes

Attributes

_var_dimtuple

A Tuple with the name of the Y and X dimensions for the variables. (“lat”, “lon”, ) for a points grid.

_lat_dimtuple

A Tuple with the name of the dimensions of the Latitude values. (“lat”, ) for a points grid.

_lon_dimtuple

A Tuple with the name of the dimensions of the Longitude values. (“lon”, ) for a points grid.

_stationtuple

A Tuple with the name of the dimensions of the station values. (“station”, ) for a points grid.

add_variables_to_shapefile(var_list, idx_lev=0, idx_time=0)[source]

Add variables data to shapefile.

var_listlist, str

List (or single string) of the variables to be loaded and saved in the shapefile.

idx_levint

Index of vertical level for which the data will be saved in the shapefile.

idx_timeint

Index of time for which the data will be saved in the shapefile.

create_shapefile()[source]

Create spatial GeoDataFrame (shapefile).

Returns

shapefileGeoPandasDataFrame

Shapefile dataframe.

create_spatial_bounds()[source]

Calculate longitude and latitude bounds and set them.

get_centroids_from_coordinates()[source]

Get centroids from geographical coordinates.

Returns

centroids_gdf: GeoPandasDataFrame

Centroids dataframe.

static new(comm=None, path=None, info=False, dataset=None, parallel_method='X', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, **kwargs)[source]

Initialize the Nes class.

Parameters

comm: MPI.COMM

MPI Communicator.

path: str

Path to the NetCDF to initialize the object.

info: bool

Indicates if you want to get reading/writing info.

dataset: Dataset

NetCDF4-python Dataset to initialize the class.

parallel_methodstr

Indicates the parallelization method that you want. Default: “X”. accepted values: [“X”, “T”].

avoid_first_hoursint

Number of hours to remove from first time steps.

avoid_last_hoursint

Number of hours to remove from last time steps.

first_levelint

Index of the first level to use.

last_levelint, None

Index of the last level to use. None if it is the last.

create_nesbool

Indicates if you want to create the object from scratch (True) or through an existing file.

balancedbool

Indicates if you want a balanced parallelization or not. Balanced dataset cannot be written in chunking mode.

timeslist, None

List of times to substitute the current ones while creation.

to_grib2(path, grib_keys, grib_template_path, lat_flip=False, info=False)[source]

Write output file with grib2 format.

Parameters

lat_flipbool

Indicates if you want to flip the latitude direction.

pathstr

Path to the output file.

grib_keysdict

Dictionary with the grib2 keys.

grib_template_pathstr

Path to the grib2 file to use as template.

infobool

Indicates if you want to print extra information during the process.

to_providentia(model_centre_lon, model_centre_lat, grid_edge_lon, grid_edge_lat)[source]

Transform a PointsNes into a PointsNesProvidentia object

Returns

points_nes_providentianes.Nes

Points Nes Providentia Object

GHOST projection

class nes.nc_projections.points_nes_ghost.PointsNesGHOST(comm=None, path=None, info=False, dataset=None, parallel_method='X', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, **kwargs)[source]

Bases: PointsNes

Attributes

_qadict

Quality flags (GHOST checks) dictionary with the complete “data” key for all the values and the rest of the attributes.

_flagdict

Data flags (given by data provider) dictionary with the complete “data” key for all the values and the rest of the attributes.

_qadict

Quality flags (GHOST checks) dictionary with the portion of “data” corresponding to the rank values.

_flagdict

Data flags (given by data provider) dictionary with the portion of “data” corresponding to the rank values.

add_variables_to_shapefile(var_list, idx_lev=0, idx_time=0)[source]

Add variables data to shapefile.

var_listlist, str

List (or single string) of the variables to be loaded and saved in the shapefile.

idx_levint

Index of vertical level for which the data will be saved in the shapefile.

idx_timeint

Index of time for which the data will be saved in the shapefile.

erase_flags()[source]
static get_standard_metadata(ghost_version)[source]

Get all possible GHOST variables for each version.

Parameters

ghost_versionstr

Version of GHOST file.

Returns

metadata_variables[GHOST_version]list

A List of metadata variables for a certain GHOST version

static new(comm=None, path=None, info=False, dataset=None, parallel_method='X', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, **kwargs)[source]

Initialize the PointsNesGHOST class.

Parameters

comm: MPI.COMM

MPI Communicator.

path: str

Path to the NetCDF to initialize the object.

info: bool

Indicates if you want to get reading/writing info.

dataset: Dataset

NetCDF4-python Dataset to initialize the class.

parallel_methodstr

Indicates the parallelization method that you want. Default: “X”. Accepted values: [“X”].

avoid_first_hoursint

Number of hours to remove from first time steps.

avoid_last_hoursint

Number of hours to remove from last time steps.

first_levelint

Index of the first level to use.

last_levelint, None

Index of the last level to use. None if it is the last.

create_nesbool

Indicates if you want to create the object from scratch (True) or through an existing file.

balancedbool

Indicates if you want a balanced parallelization or not. Balanced dataset cannot be written in chunking mode.

timeslist, None

List of times to substitute the current ones while creation.

to_netcdf(path, compression_level=0, serial=False, info=False, chunking=False, nc_type='NES', keep_open=False)[source]

Write the netCDF output file.

Parameters

keep_open : bool nc_type : str path : str

Path to the output netCDF file.

compression_levelint

Level of compression (0 to 9) Default: 0 (no compression).

serialbool

Indicates if you want to write in serial or not. Default: False.

infobool

Indicates if you want to print the information of each writing step by stdout Default: False.

chunkingbool

Indicates if you want a chunked netCDF output. Only available with non-serial writes. Default: False.

to_points()[source]

Transform a PointsNesGHOST into a PointsNes object

Returns

points_nesnes.Nes

Points Nes Object (without GHOST metadata variables)

Providentia projection

class nes.nc_projections.points_nes_providentia.PointsNesProvidentia(comm=None, path=None, info=False, dataset=None, parallel_method='X', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, model_centre_lon=None, model_centre_lat=None, grid_edge_lon=None, grid_edge_lat=None, **kwargs)[source]

Bases: PointsNes

Attributes

_model_centre_londict

Model centre longitudes dictionary with the complete “data” key for all the values and the rest of the attributes.

_model_centre_latdict

Model centre latitudes dictionary with the complete “data” key for all the values and the rest of the attributes.

_grid_edge_londict

Grid edge longitudes dictionary with the complete “data” key for all the values and the rest of the attributes.

_grid_edge_latdict

Grid edge latitudes dictionary with the complete “data” key for all the values and the rest of the attributes.

model_centre_londict

Model centre longitudes dictionary with the portion of “data” corresponding to the rank values.

model_centre_latdict

Model centre latitudes dictionary with the portion of “data” corresponding to the rank values.

grid_edge_londict

Grid edge longitudes dictionary with the portion of “data” corresponding to the rank values.

grid_edge_latdict

Grid edge latitudes dictionary with the portion of “data” corresponding to the rank values.

add_variables_to_shapefile(var_list, idx_lev=0, idx_time=0)[source]

Add variables data to shapefile.

var_listlist, str

List (or single string) of the variables to be loaded and saved in the shapefile.

idx_levint

Index of vertical level for which the data will be saved in the shapefile.

idx_timeint

Index of time for which the data will be saved in the shapefile.

static new(comm=None, path=None, info=False, dataset=None, parallel_method='X', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, model_centre_lon=None, model_centre_lat=None, grid_edge_lon=None, grid_edge_lat=None, **kwargs)[source]

Initialize the PointsNesProvidentia class.

Parameters

comm: MPI.COMM

MPI Communicator.

path: str

Path to the NetCDF to initialize the object.

info: bool

Indicates if you want to get reading/writing info.

dataset: Dataset

NetCDF4-python Dataset to initialize the class.

parallel_methodstr

Indicates the parallelization method that you want. Default: “X”. Accepted values: [“X”].

avoid_first_hoursint

Number of hours to remove from first time steps.

avoid_last_hoursint

Number of hours to remove from last time steps.

first_levelint

Index of the first level to use

last_levelint, None

Index of the last level to use. None if it is the last.

balancedbool

Indicates if you want a balanced parallelization or not. Balanced dataset cannot be written in chunking mode.

timeslist, None

List of times to substitute the current ones while creation.

create_nesbool

Indicates if you want to create the object from scratch (True) or through an existing file.

model_centre_londict

Model centre longitudes dictionary with the portion of “data” corresponding to the rank values.

model_centre_latdict

Model centre latitudes dictionary with the portion of “data” corresponding to the rank values.

grid_edge_londict

Grid edge longitudes dictionary with the portion of “data” corresponding to the rank values.

grid_edge_latdict

Grid edge latitudes dictionary with the portion of “data” corresponding to the rank values.

to_netcdf(path, compression_level=0, serial=False, info=False, chunking=False, nc_type='NES', keep_open=False)[source]

Write the netCDF output file.

Parameters

pathstr

Path to the output netCDF file.

compression_levelint

Level of compression (0 to 9) Default: 0 (no compression).

serialbool

Indicates if you want to write in serial or not. Default: False.

infobool

Indicates if you want to print the information of each writing step by stdout Default: False.

chunkingbool

Indicates if you want a chunked netCDF output. Only available with non-serial writes. Default: False.

nc_typestr

Type to NetCDf to write. “CAMS_RA” or “NES”

keep_openbool

Indicates if you want to keep open the NetCDH to fill the data by time-step

Rotated projection

class nes.nc_projections.rotated_nes.RotatedNes(comm=None, path=None, info=False, dataset=None, parallel_method='Y', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, **kwargs)[source]

Bases: Nes

Attributes

_full_rlatdict

Rotated latitudes dictionary with the complete “data” key for all the values and the rest of the attributes.

_full_rlondict

Rotated longitudes dictionary with the complete “data” key for all the values and the rest of the attributes.

rlatdict

Rotated latitudes dictionary with the portion of “data” corresponding to the rank values.

rlondict

Rotated longitudes dictionary with the portion of “data” corresponding to the rank values.

_var_dimtuple

A Tuple with the name of the Y and X dimensions for the variables. (“rlat”, “rlon”) for a rotated projection.

_lat_dimtuple

A Tuple with the name of the dimensions of the Latitude values. (“rlat”, “rlon”) for a rotated projection.

_lon_dimtuple

A Tuple with the name of the dimensions of the Longitude values. (“rlat”, “rlon”) for a rotated projection.

create_providentia_exp_centre_coordinates()[source]

Calculate centre latitudes and longitudes from original coordinates and store as 2D arrays.

Returns

model_centre_latdict

Dictionary with data of centre coordinates for latitude in 2D (latitude, longitude).

model_centre_londict

Dictionary with data of centre coordinates for longitude in 2D (latitude, longitude).

create_providentia_exp_grid_edge_coordinates()[source]

Calculate grid edge latitudes and longitudes and get model grid outline.

Returns

grid_edge_latdict

Dictionary with data of grid edge latitudes.

grid_edge_londict

Dictionary with data of grid edge longitudes.

create_shapefile()[source]

Create spatial geodataframe (shapefile).

Returns

shapefileGeoPandasDataFrame

Shapefile dataframe.

create_spatial_bounds()[source]

Calculate longitude and latitude bounds and set them.

get_centroids_from_coordinates()[source]

Get centroids from geographical coordinates.

Returns

centroids_gdf: GeoPandasDataFrame

Centroids dataframe.

get_full_rlat() Dict[str, Any][source]

Retrieve the complete rotated latitude information.

Returns

Dict[str, Any]

A dictionary containing the complete latitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of latitude values. attr_name: attr_value, # Latitude attributes. …

}

get_full_rlon() Dict[str, Any][source]

Retrieve the complete rotated longitude information.

Returns

Dict[str, Any]

A dictionary containing the complete longitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of longitude values. attr_name: attr_value, # Longitude attributes. …

}

static new(comm=None, path=None, info=False, dataset=None, parallel_method='Y', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, **kwargs)[source]

Initialize the Nes class.

Parameters

comm: MPI.COMM

MPI Communicator.

path: str

Path to the NetCDF to initialize the object.

info: bool

Indicates if you want to get reading/writing info.

dataset: Dataset

NetCDF4-python Dataset to initialize the class.

parallel_methodstr

Indicates the parallelization method that you want. Default over Y axis accepted values: [“X”, “Y”, “T”].

avoid_first_hoursint

Number of hours to remove from first time steps.

avoid_last_hoursint

Number of hours to remove from last time steps.

first_levelint

Index of the first level to use.

last_levelint or None

Index of the last level to use. None if it is the last.

create_nesbool

Indicates if you want to create the object from scratch (True) or through an existing file.

balancedbool

Indicates if you want a balanced parallelization or not. Balanced dataset cannot be written in chunking mode.

timesList[datetime] or None

List of times to substitute the current ones while creation.

rotated2latlon(lon_deg, lat_deg, lon_min=-180)[source]

Calculate the unrotated coordinates using the rotated ones.

Parameters

lon_degarray

Rotated longitude coordinate.

lat_degarray

Rotated latitude coordinate.

lon_minfloat

Minimum value for the longitudes: -180 (-180 to 180) or 0 (0 to 360).

Returns

almdarray

Unrotated longitudes.

aphdarray

Unrotated latitudes.

set_full_rlat(data: Dict[str, Any]) None[source]

Set the complete rotated latitude information.

Parameters

dataDict[str, Any]

A dictionary containing the complete latitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of latitude values. attr_name: attr_value, # Latitude attributes. …

}

set_full_rlon(data: Dict[str, Any]) None[source]

Set the complete rotated longitude information.

Parameters

dataDict[str, Any]

A dictionary containing the complete longitude data and its attributes. The dictionary structure is: {

“data”: ndarray, # Array of longitude values. attr_name: attr_value, # Longitude attributes. …

}

to_grib2(path, grib_keys, grib_template_path, lat_flip=False, info=False)[source]

Write output file with grib2 format.

Parameters

lat_flipbool

Indicates if you want to flip the latitude coordinates.

pathstr

Path to the output file.

grib_keysdict

Dictionary with the grib2 keys.

grib_template_pathstr

Path to the grib2 file to use as template.

infobool

Indicates if you want to print extra information during the process.

Rotated nested projection

class nes.nc_projections.rotated_nested_nes.RotatedNestedNes(comm=None, path=None, info=False, dataset=None, parallel_method='Y', avoid_first_hours=0, avoid_last_hours=0, first_level=0, last_level=None, create_nes=False, balanced=False, times=None, **kwargs)[source]

Bases: RotatedNes