FdsnPlugs.PublicationVersion (fdsn_plugs v0.8.3)

View Source

PublicationVersion in miniseed3 superseeds the Quality code in miniseed2. But the FDSN web services still need to advertise the quality code. This module is a helper to translate the publication version to a quality letter. The correspondance is:

  • 1: R
  • 2: D
  • 3: Q
  • 4: M

Summary

Functions

Translate a publication version to a quality code.

Translate a publication version to a quality code. Raises an error if conversion is not possible iex> FdsnPlugs.PublicationVersion.pubversion_to_quality!(1) iex> "R" iex> FdsnPlugs.PublicationVersion.pubversion_to_quality!(2) iex> "D" iex> FdsnPlugs.PublicationVersion.pubversion_to_quality!(3) iex> "Q" iex> FdsnPlugs.PublicationVersion.pubversion_to_quality!(4) iex> "M" iex> FdsnPlugs.PublicationVersion.pubversion_to_quality!(0) ** (ArgumentError) Unknown quality code 0

Translate a list of qualities to a list of pubversions. iex> FdsnPlugs.PublicationVersion.qualities_to_pubversions(["M", "D", "R", "Q"]) iex> [1,2,3,4] iex> FdsnPlugs.PublicationVersion.qualities_to_pubversions(["test"]) iex> []

Translate a quality code version to a publication version.

Functions

pubversion_to_quality(p)

@spec pubversion_to_quality(Integer | String.t()) ::
  {:error, String.t()} | {:ok, String.t()}

Translate a publication version to a quality code.

iex> FdsnPlugs.PublicationVersion.pubversion_to_quality(7) iex> {:error, "Unknown quality code x"} iex> FdsnPlugs.PublicationVersion.pubversion_to_quality(1) iex> {:ok, "R"} iex> FdsnPlugs.PublicationVersion.pubversion_to_quality(2) iex> {:ok, "D"} iex> FdsnPlugs.PublicationVersion.pubversion_to_quality(3) iex> {:ok, "Q"} iex> FdsnPlugs.PublicationVersion.pubversion_to_quality(4) iex> {:ok, "M"} iex> FdsnPlugs.PublicationVersion.pubversion_to_quality("PLOP") iex> {:error, "PLOP is not a textual representation of an integer"} iex> FdsnPlugs.PublicationVersion.pubversion_to_quality("1") iex> {:ok, "R"}

pubversion_to_quality!(p)

@spec pubversion_to_quality!(Integer) :: String.t() | nil

Translate a publication version to a quality code. Raises an error if conversion is not possible iex> FdsnPlugs.PublicationVersion.pubversion_to_quality!(1) iex> "R" iex> FdsnPlugs.PublicationVersion.pubversion_to_quality!(2) iex> "D" iex> FdsnPlugs.PublicationVersion.pubversion_to_quality!(3) iex> "Q" iex> FdsnPlugs.PublicationVersion.pubversion_to_quality!(4) iex> "M" iex> FdsnPlugs.PublicationVersion.pubversion_to_quality!(0) ** (ArgumentError) Unknown quality code 0

qualities_to_pubversions(p)

@spec qualities_to_pubversions(list()) :: list()

Translate a list of qualities to a list of pubversions. iex> FdsnPlugs.PublicationVersion.qualities_to_pubversions(["M", "D", "R", "Q"]) iex> [1,2,3,4] iex> FdsnPlugs.PublicationVersion.qualities_to_pubversions(["test"]) iex> []

quality_to_pubversion(p)

@spec quality_to_pubversion(String.t() | atom()) ::
  {:error, String.t()} | {:ok, integer()}

Translate a quality code version to a publication version.

iex> FdsnPlugs.PublicationVersion.quality_to_pubversion("R") iex> {:ok, 1} iex> FdsnPlugs.PublicationVersion.quality_to_pubversion("D") iex> {:ok, 2} iex> FdsnPlugs.PublicationVersion.quality_to_pubversion("Q") iex> {:ok, 3} iex> FdsnPlugs.PublicationVersion.quality_to_pubversion("M") iex> {:ok, 4} iex> FdsnPlugs.PublicationVersion.quality_to_pubversion(:M) iex> {:ok, 4}