Station-to-archive (LR)#
Logical-record specifications, validation, and string formatting for BSRN
station-to-archive .dat files. For reading parsed LR data into pandas, see
read_station_to_archive() in I/O Operations. A minimal writing
walk-through is in Writing a station-to-archive .dat file.
The concrete LR* types are Pydantic v2 models (pydantic.BaseModel subclasses).
Field layout and Fortran-width metadata come from LR_SPECS; each field’s
validate_func name resolves to a callable in bsrn.archive.validation.
Scalar and header fields use
lr_spec(), which attachesjson_schema_extraand anAfterValidatorbuilt bymake_archive_after_validator().LR0100 / LR4000 minute columns use
lr_spec_field()plus modelfield_validator()methods that passyearMonthintoLR0100_validateFunction()/LR4000_validateFunction().
Core#
Base class for archive LRs: Pydantic |
|
Format horizon azimuth/elevation lists for LR0004. |
Field helpers (records_models / records_base)#
|
One logical-record field: |
Pydantic |
|
Build a unary callable for |
Logical record classes#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Minute-resolution archive block; series columns accept |
|
LR4000 pyrgeometer minute block; series columns accept |
|
Each LR* model implements get_bsrn_format for archive text; get_azimuth_elevation is defined alongside those helpers in bsrn.archive.archive_lr_formats.
Metadata and lookup tables#
dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2). |
|
dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2). |
|
dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2). |
|
dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2). |
|
dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2). |
|
dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2). |
|
dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2). |
Submodules#
|
|
Shared Pydantic base classes for BSRN logical records. |
|
Explicit Pydantic logical-record models aligned with |
|
bsrn.archive.specs |
|
BSRN station-to-archive field validators. |