The Land Information System Verification Toolkit (LVT) is a software tool designed to enable the evaluation, analysis and comparison of outputs generated by the Land Information System (LIS). LVT was originally developed in the Hydrological Sciences Laboratory of the NASA Goddard Space Flight Center.
Land Information System Verification Toolkit (LVT) Goals
The Land Information System Verification Toolkit (LVT) is a hybrid Fortran90 and C software tool designed to enable the evaluation, analysis and comparison of outputs generated by the Land Information System (LIS). LIS is a software framework to support land surface modeling and data assimilation. The modeled estimates of land surface conditions generated by LIS are typically evaluated by comparing them with data from observational networks, remote-sensing platforms and similar estimates from other modeling frameworks. LVT works seamlessly with LIS and provides an integrated, uniform approach for land surface verification. The tool provides schemes for the incorporation of multiple observational data sources, handles the required geo-spatial and temporal transformations and a wide suite of deterministic, categorical and probabilistic verification metrics.
LVT is described in more detail at: http://www.geosci-model-dev.net/5/869/2012/gmd-5-869-2012.html.
Evaluation of the land surface states and fluxes generated by the Land Information System (LIS) framework is typically done by comparing them to observational data from ground networks, remote sensing platforms and similar model outputs. These datasets, however, are usually available in disparate data formats and require significant efforts to process them into a structure amenable for use with the model data. Further, the spatial and temporal scales of the model outputs and the observational data often differ. Thus, a key goal for LVT is to develop a uniform approach to land surface verification that allows for re-use of related data format libraries (e.g., GRIB, NetCDF, HDF, BUFR), data readers, geospatial interpolators, and statistical computations for various combinations of observational and model datasets to alleviate time-consuming processing efforts.
LVT is implemented using object oriented framework design principles as a modular, extensible and reusable system. The software architecture of the system follows a three-layer structure:
- LVT core
- Use Case Implementations
LVT core, the top layer, encompasses generic modeling features, such as the management of time, I/O, configuration, logging and geospatial transformations. The middle layer, called "Abstractions" represents the extensible interfaces defined for incorporating additional functionalities into LVT. These include plugin interfaces for implementing new observational data sources and analysis metrics. The Abstractions layer provides the entry points for the reuse of existing generic capabilities of the LVT core. The top two layers thus represent the classic "semi-complete" nature of an object-oriented framework, which is made fully functional by including specific implementations of the abstractions.
LVT software is primarily written in Fortran 90 programming language. Though Fortran 90 lacks the direct support for object oriented programming concepts such as polymorphism and inheritance, these properties can be simulated in software through the combined use of Fortran 90 and C programming languages. The compile-time polymorphism in LVT is simulated through the use of virtual function tables, by employing C language to interface with Fortran 90 functions, and by storing them in memory to be invoked at runtime. These virtual function tables enable the "Abstractions" layer constructs described above.
Two key goals of this object oriented-based design are extensibility and interoperability, which allows LVT to evolve to work with new observations and metrics as well as with new land surface models or modeling frameworks. The top two layers (LVT core and Abstractions) define the interactions between an Observation or a Metric implementation with the LVT core in a generic manner. Similarly, the required interconnections between an Observation implementation and a Metric implementation are also handled generically. As a result, the existing functionalities of the system are automatically available to a new addition in LVT, implemented through the extension of an Abstraction. For example, a newly incorporated observation implementation can take advantage of all available analysis metrics without having to define any additional interconnections between each bottom layer component.
Implementations to read and process observations from a wide range of terrestrial hydrological observations have been implemented using the "Observations" abstraction. Similarly, a large suite of analysis metrics has been implemented by extending the "Metrics" abstraction.
A critical part of a Land Surface Model evaluation procedure is the processing of datasets, which normally consist of model outputs and measurements from in-situ, satellite and remote sensing platforms. These datasets typically have different file formats, spatial and temporal scales and reporting procedures. Further, the in-situ and remotely sensed measurements typically require extensive quality control before their use. The rectification of such differences between datasets being compared is an essential, but routine and time consuming step in the evaluation process. The philosophy in LVT is to use the datasets in their native formats and to provide standard methods for accomplishing all reading, QC and spatial/temporal interpolation steps, in addition to the suite of metrics to be computed. The "plugin" style design of LVT enables the development of data processors corresponding to each dataset. Once developed, these data processors can be subsequently used to work with an ongoing data col- lection without additional reprocessing. Though the emphasis on the use of native formats is useful for rapid use of the datasets, the use of high-resolution datasets could be computationally limiting, especially when the analysis is conducted against a coarse resolution model simulation. To circumvent this limitation, LVT provides a "data processing" run mode, where it performs various data handling operations (read, interpolation, reprojection and subsetting) and outputs the processed data to disk. The processed data can then be used by a subsequent analysis run of LVT.