Introducing Labrador: The Future Of Weather Data Retrieval

Written by Steve Gifford

September 16, 2024

At Wet Dog Weather, we’re revolutionizing weather data retrieval with our newest product, the Labrador SDK. While our Terrier SDK has set the standard for fast and beautiful weather data visualization, Labrador SDK takes care of the crucial task of fetching the data. This powerful Python toolkit is designed to make weather data retrieval from your own stack efficient, flexible, and seamless.

Labrador SDK: Your Faithful Weather Data Companion

Just as a Labrador retriever is known for its reliable fetching abilities, our Labrador SDK excels at retrieving your weather data. This powerful Python toolkit is designed specifically for weather data retrieval from your own stack, making it an indispensable tool for meteorologists, researchers, and weather technology professionals.

Key Features of Labrador SDK:

    1. Efficient Data Retrieval: Quickly fetch the exact weather data you need.
    2. Python-based: Seamlessly integrate with your existing Python workflows.
    3. Local Processing: Runs on your computer, giving you complete control over your data.
    4. Cloud Native Compatibility: Interacts smoothly with your Boxer stack using Cloud Native formats.
    5. Customizable Queries: Tailor your data retrieval to your specific requirements.

    The Labrador SDK represents our commitment to providing comprehensive weather technology solutions. While Terrier SDK handles the “show,” Labrador SDK takes care of the “fetch,” ensuring you have the data and the means to display it effectively.

    Modern Meteorological Data Processing: The Labrador Advantage

    At Wet Dog Weather, we see ourselves as data plumbers, expertly moving data into place as needed. Building systems for radar advection and assisting colleagues with their setups has given us invaluable insights into effective meteorological data processing.

    Weather data is unique in its constant influx, combining model and observational data. This continuous stream demands a pipeline that can run at varying intervals—from seconds to hours—depending on your specific needs.

    Enter Labrador: This Python-based SDK is designed to seamlessly interact with all weather data in your Boxer stack via Cloud Native formats. Labrador empowers you to handle this continuous data flow efficiently and effectively.

    Why Not Just a REST API?

    While Representational State Transfer (REST) excels at simple queries like checking the temperature in New Orleans two hours from now, it falls short when dealing with more complex weather data retrieval tasks.

    Imagine needing five hours of temperature data from a thousand locations across the US. With REST, you will likely encounter timeouts or API-imposed limits that hinder smooth operation.

    Labrador offers a more straightforward solution: iterate over your locations and directly query the time slices you need. Need to work with a whole grid, like 2m temperature over CONUS? Labrador makes it easy to grab exactly what you need when you need it.

    (Note: If you still prefer REST, we offer Web Coverage Service support, which we’ll discuss later.)

    Labrador SDK: Unleashing the Power of Your Weather Data

    – Comprehensive Data Access

    Labrador SDK is designed to give you full access to your Boxer stack, which includes:

    • Standard datasets like HRRR for CONUS and Alaska
    • Your custom-produced data
    • Third-party data you’ve acquired

    This comprehensive access ensures you have all your weather data at your fingertips, ready for analysis and processing.

    – Seamless Integration with Terrier

    Just as Terrier SDK allows you to visualize all this data, Labrador SDK enables you to query and manipulate it programmatically. This synergy between our SDKs provides a complete solution for weather data management and analysis.

    – Intuitive Discovery and Weather Data Retrieval

    Labrador SDK offers powerful features for working with your weather data:

    • Metadata Exploration: Easily sift through your Boxer stack metadata to identify the specific data you need.
    • Efficient Querying: Labrador provides intuitive methods to query your data effectively once you’ve located it.
    • Python-Friendly Output: All queries return NumPy-compatible data structures, allowing seamless integration with your existing Python workflows and data science tools.

    This design philosophy ensures that Labrador SDK is not just a weather data retrieval tool but a comprehensive solution for weather data management and analysis in Python environments.

    By leveraging Labrador SDK, meteorologists and data scientists can spend less time on data wrangling and more time on meaningful analysis and insights.

    Python for Meteorology and Weather Data Retrieval

    Python has become the go-to language for meteorologists and weather modelers, particularly for weather data retrieval and analysis. While it may not always be the most efficient language, Python’s powerful libraries make it an invaluable tool in the field. With the right expertise and optimization, you can create fast and efficient weather data retrieval systems using Python.

    At our company, we’ve embraced Python wholeheartedly. Boxer’s data processing engine is almost entirely written in Python. While our front-end solution, Terrier, uses a combination of C++ and JavaScript, the core of our weather data processing remains Python-based.

    The decision to use Python was strategic, aimed at aligning our tools with those of our customers. Using the same language and libraries as meteorologists, we gain deeper insights into their workflows and challenges. This understanding allows us to create more effective weather data retrieval and analysis solutions.

    Labrador is a Python toolkit explicitly designed for weather data retrieval. It leverages Cloud Native data formats, with a particular focus on Zarr.

    By combining Python’s flexibility with Zarr’s efficiency, Labrador SDK provides a powerful solution for weather data retrieval that meets the needs of modern meteorologists and weather modelers.

    Cloud Native Formats & Zarr

    Cloud-native data formats have revolutionized weather data retrieval by enabling efficient access to meteorological datasets stored in cloud services like AWS S3. These formats are designed to allow clients to quickly fetch metadata about large data chunks and then retrieve uniformly sized pieces of that data, streamlining the weather data retrieval process.

    Developers typically rely on interface libraries that manage local data caches for effective weather data retrieval. These libraries communicate with cloud storage and present a user-friendly interface, simplifying the complexities of direct cloud queries for meteorologists and data scientists.

    Zarr is a prominent cloud-native format tailored for multi-dimensional arrays. It’s ideal for weather data retrieval and storage. Its compatibility with cloud storage solutions like AWS S3 and its ability to present data as NumPy arrays make it a perfect fit for meteorological applications.

    Labrador SDK leverages Zarr’s capabilities to provide a powerful solution for weather data retrieval. It offers an intuitive and efficient interface for meteorologists and developers working with weather data by using Zarr as the core data access method for model and observed gridded data.

    Putting it all Together: Labrador SDK for Efficient Weather Data Retrieval

    The development of Labrador SDK involved a significant shift in our data storage strategy within Boxer. We transitioned to using Zarr for our gridded data storage, optimizing our weather data retrieval processes. While we maintain a specialized approach for visual data, adopting Zarr for pure data storage has enhanced our capabilities in handling meteorological information.

    However, efficient weather data retrieval is about more than just data representation. A crucial aspect is metadata management—knowing what datasets are available and where they’re located. We leveraged our existing metadata system from Terrier and extended it to Labrador, creating a comprehensive solution for weather data retrieval.

    Labrador SDK, therefore, functions as a two-part toolkit for weather data retrieval:

    1. Metadata Query: Allows users to efficiently search and identify available weather datasets.
    2. Specific Data Access: Provides tools to retrieve and work with the identified weather data.

    Let’s walk through an example of how Labrador SDK facilitates weather data retrieval:

    • Querying for weather data: First, we use Labrador to query the latest 2m HRRR (High-Resolution Rapid Refresh) temperature data for CONUS (Continental United States).
    • Visualizing the retrieved data: After retrieving the data, we can easily display the Zarr file using Napari, a powerful tool for multi-dimensional data visualization.

    Many utilities can work directly with Zarr files, or you can read the data into NumPy arrays for further analysis. This versatility allows meteorologists and data scientists to seamlessly integrate Labrador into their existing weather data retrieval and analysis workflows.

    Web Coverage Service

    We were a little hard on REST earlier. It works well for many queries, and sometimes, a system has it baked in. We have your back there.

    We’ve built a Web Coverage Service (WCS) REST API for Boxer and are offering it as an option, similar to our WMTS and WMS support.  

    WCS lets you sift through metadata and query individual points, areas, polygons, and other data. It’s very wordy but standard, so if you need it, it’s there. And it’s built on top of Labrador.

    While we’ve emphasized the advantages of cloud-native formats, we recognize that REST APIs still play a crucial role in many weather data retrieval systems. To cater to diverse needs, we’ve expanded our offerings to include a Web Coverage Service (WCS) REST API for Boxer.

    This WCS implementation, built on top of Labrador SDK, complements our existing WMTS and WMS support. It provides a standardized interface for weather data retrieval, allowing users to:

    1. Navigate through metadata efficiently
    2. Query individual points, areas, and polygons
    3. Retrieve specific weather data sets

    While WCS can be verbose, its standardization makes it a valuable option for systems that require REST-based weather data retrieval. By integrating WCS with Labrador SDK, we ensure that users can access a wide range of weather data retrieval methods that cater to various technical requirements and preferences.

    Labrador SDK: Bridging Weather Data Retrieval and Discovery

    Whether developing sophisticated weather applications, conducting in-depth climate research, or integrating weather data into complex business processes, Labrador SDK is a reliable and flexible solution for your weather data retrieval needs.

    By combining:

    • Efficient cloud-native data storage with Zarr
    • Comprehensive metadata management
    • Flexible data access methods
    • Support for standard protocols like WCS

    Labrador SDK emerges as more than just a tool – it’s your faithful companion in the world of weather data retrieval. It simplifies complex data access, accelerates analysis, and empowers you to make the most of meteorological data in your projects and research.

    With Labrador SDK, you can fetch, analyze, and utilize weather data with unprecedented ease and efficiency, opening new possibilities in meteorology and beyond.