← Back to all sparks
O

openairmaps

INFRA · APIS
Velocity0.0

Create Maps of Air Pollution Data

The mapping half of the openair stack, currently dismantling its own static plotting in favour of the parent package.

air-qualityinteractive-mapsleafletggplot2trajectory-analysisr-package
Current state
openairmaps puts openair's air quality analysis onto interactive maps — polar markers on leaflet, trajectory paths and gridded trajectory levels, and popup construction from site metadata. It now requires openair 3.0.0 and R 4.1, and its polar markers are drawn by ggplot2 as a consequence, which brought a theme argument for customising them. The latest release turns off the automatic captions that openair 3.1.0 started adding, and points the remaining static trajectory functions at openair's own implementations.
Where it's heading
This package follows rather than leads. The ggplot2 polar markers, the pipe change, and the R version floor all arrived because the parent package moved first, and the two now ship within hours of each other. The clearer local trend is contraction: the polarMapStatic() family has been removed outright, the static trajectory functions are now thin wrappers around openair equivalents with removal stated as the plan, and argument names keep being retired in favour of openair's. The package is narrowing toward the one thing openair does not do — interactive maps.
Prediction
The static trajectory wrappers are explicitly flagged for removal, so the next significant release should drop them and leave the package purely interactive.

Recent moves

  1. 3mo ago

    Polar map captions off by default; static trajectories delegate upstream

    Captions that openair 3.1.0 began adding automatically are switched off across the polarMap() family, recoverable with annotate = TRUE. The static trajectory functions now simply call their openair counterparts, described in the notes as a step toward removing them entirely. Released the same day as the openair version that prompted it.

    View source ↗
  2. 4mo ago

    Requires openair 3.0.0; polar markers move to ggplot2

    The adopting side of openair's rendering rewrite. Requiring openair 3.0.0 means polar markers are ggplot2 objects, which brings a theme argument for detailed customisation but also means markers inherit anything set through ggplot2::theme_set(). The magrittr pipe is no longer exported and the static polar family is removed — the directional decision was made upstream, and this release absorbs it.

    View source ↗
  3. 1y ago

    Pairwise statistics on polar maps; separate size and linewidth controls

    polarMap() gains pairwise statistics such as robust slope, extending map markers beyond single-pollutant summaries into relationships between them. Static trajectory maps get independent size and linewidth mapping, each accepting a data column or a fixed value, alongside fixes to popup vectors and argument passthrough.

    View source ↗
  4. 2y ago

    Static maps rebuilt on ggspatial, removing the API key requirement

    Static polar maps move from ggmap to ggspatial, which removes the API key that the Stamen and Stadia change had forced on users a release earlier, widens the available base maps, and makes map extents settable through ggplot2::coord_sf(). The control and facet arguments also begin deprecating in favour of openair's type — the alignment with the parent package starting well before the ggplot2 rewrite.

    View source ↗
  5. 2y ago

    Static plotting requires a user-supplied map after Stamen goes behind an API

    An upstream tile provider moving behind an API forced static polar plotting to require a user-provided ggmap object and dropped the zoom argument. The limit arguments also gain fixed and free options for controlling scales across panels. It is the release that made static maps awkward enough to justify the ggspatial switch that followed.

    View source ↗