diff --git a/assets/dataloggers.csv b/assets/dataloggers.csv
index cc2090008..abf3c0ad0 100644
--- a/assets/dataloggers.csv
+++ b/assets/dataloggers.csv
@@ -16,7 +16,7 @@ Campbell Scientific,CR6,11301,,
Campbell Scientific,CR6,11303,,
Campbell Scientific,CR6,11770,,
Campbell Scientific,CR6,15365,,
-Campbell Scientific,CR6,15366,,
+Campbell Scientific,CR6,15366,404990,
Campbell Scientific,CR6,15367,,
Campbell Scientific,CR6,15368,,
Campbell Scientific,CR6,15370,,
@@ -30,6 +30,7 @@ Campbell Scientific,CR6,20467,,
Campbell Scientific,CR6,20468,,
Campbell Scientific,CR6,20469,,
Campbell Scientific,CR6,20470,,
+Campbell Scientific,CR6,20474,411210,
Campbell Scientific,CR6,20475,,
Galitzin-Wilip,GALITZIN-WILIP,WEL_1,,
Guralp,GURALP-SAM-RECORDER,S0125,,
@@ -653,6 +654,7 @@ Nanometrics,Centaur CTR4-6S,9894,,
Nanometrics,Centaur CTR4-6S,9895,,
Nanometrics,Centaur CTR4-6S,9899,,
Nanometrics,Centaur CTR4-6S,9901,,
+Nanometrics,Centaur CTR4-6S,9902,,
Nanometrics,Centaur CTR4-6S,9903,,
Nanometrics,Centaur CTR4-6S,9904,,
Nanometrics,Centaur CTR4-6S,9906,,
@@ -674,6 +676,9 @@ Nanometrics,Centaur CTR4-6S,10233,,
Nanometrics,Centaur CTR4-6S,10234,,
Nanometrics,Centaur CTR4-6S,10235,,
Nanometrics,Centaur CTR4-6S,10236,,
+Nanometrics,Centaur CTR4-6S,10840,,
+Nanometrics,Centaur CTR4-6S,10956,,
+Nanometrics,Centaur CTR4-6S,10961,,
Nanometrics,ORION,0144,,
Nanometrics,ORION,0145,,
Nanometrics,ORION,0160,,
diff --git a/assets/receivers.csv b/assets/receivers.csv
index bd0dacaa9..20e787d54 100644
--- a/assets/receivers.csv
+++ b/assets/receivers.csv
@@ -166,6 +166,7 @@ Trimble Navigation Ltd.,TRIMBLE ALLOY,6222R40136,,
Trimble Navigation Ltd.,TRIMBLE ALLOY,6223R40055,,
Trimble Navigation Ltd.,TRIMBLE ALLOY,6225R40007,,
Trimble Navigation Ltd.,TRIMBLE ALLOY,6225R40025,,
+Trimble Navigation Ltd.,TRIMBLE ALLOY,6402R40041,,
Trimble Navigation Ltd.,TRIMBLE NETR5,4737K07041,,
Trimble Navigation Ltd.,TRIMBLE NETR9,5014K66721,13986,
Trimble Navigation Ltd.,TRIMBLE NETR9,5014K66722,14078,
diff --git a/assets/recorders.csv b/assets/recorders.csv
index 5027db384..703da686c 100644
--- a/assets/recorders.csv
+++ b/assets/recorders.csv
@@ -651,6 +651,7 @@ Canterbury Seismic Instruments,EQR120,46540,,
Canterbury Seismic Instruments,EQR120,46541,,
Canterbury Seismic Instruments,EQR120,46542,,
Canterbury Seismic Instruments,EQR120,46543,,
+Canterbury Seismic Instruments,EQR120,46571,,
Canterbury Seismic Instruments,EQR120,46594,,
Canterbury Seismic Instruments,EQR120,46595,,
Canterbury Seismic Instruments,EQR120,46596,,
@@ -663,6 +664,7 @@ Canterbury Seismic Instruments,EQR120,46603,,
Canterbury Seismic Instruments,EQR120,46604,,
Canterbury Seismic Instruments,EQR120,46605,,
Canterbury Seismic Instruments,EQR120,46607,,
+Canterbury Seismic Instruments,EQR120,46608,,
Canterbury Seismic Instruments,EQR120,46609,,
Canterbury Seismic Instruments,EQR120,46610,,
Canterbury Seismic Instruments,EQR120,46611,,
@@ -672,6 +674,7 @@ Canterbury Seismic Instruments,EQR120,46614,,
Canterbury Seismic Instruments,EQR120,46615,,
Canterbury Seismic Instruments,EQR120,46617,,
Canterbury Seismic Instruments,EQR120,46618,,
+Canterbury Seismic Instruments,EQR120,46619,,
Canterbury Seismic Instruments,EQR120,46621,,
Canterbury Seismic Instruments,EQR120,46622,,
Canterbury Seismic Instruments,EQR120,46623,,
@@ -679,12 +682,15 @@ Canterbury Seismic Instruments,EQR120,46624,,
Canterbury Seismic Instruments,EQR120,46625,,
Canterbury Seismic Instruments,EQR120,46626,,
Canterbury Seismic Instruments,EQR120,46627,,
+Canterbury Seismic Instruments,EQR120,46628,,
Canterbury Seismic Instruments,EQR120,46629,,
Canterbury Seismic Instruments,EQR120,46631,,
Canterbury Seismic Instruments,EQR120,46647,,
Canterbury Seismic Instruments,EQR120,46648,,
Canterbury Seismic Instruments,EQR120,46649,,
+Canterbury Seismic Instruments,EQR120,46650,,
Canterbury Seismic Instruments,EQR120,46651,,
+Canterbury Seismic Instruments,EQR120,46652,,
Canterbury Seismic Instruments,EQR120,46653,,
Canterbury Seismic Instruments,EQR120,46654,,
Canterbury Seismic Instruments,EQR120,46655,,
@@ -1131,7 +1137,13 @@ Nanometrics,TitanSMA,002181,,
Nanometrics,TitanSMA,002183,,
Nanometrics,TitanSMA,002184,,
Nanometrics,TitanSMA,002185,,
+Nanometrics,TitanSMA,002199,,
+Nanometrics,TitanSMA,002203,,
+Nanometrics,TitanSMA,002204,,
+Nanometrics,TitanSMA,002205,,
+Nanometrics,TitanSMA,002208,,
Nanometrics,TitanSMA,002210,,
+Nanometrics,TitanSMA,002211,,
Physics and Engineering Laboratory DSIR,MO1,0001,,
Physics and Engineering Laboratory DSIR,MO1,0002,,
Physics and Engineering Laboratory DSIR,MO1,0003,,
diff --git a/assets/sensors.csv b/assets/sensors.csv
index 39ade7e54..e5fd0c092 100644
--- a/assets/sensors.csv
+++ b/assets/sensors.csv
@@ -30,6 +30,8 @@ Campbell Scientific,107 temperature probe,411941,,
Campbell Scientific,107 temperature probe,411942,,
Campbell Scientific,107 temperature probe,411943,,
Campbell Scientific,107 temperature probe,411944,,
+Campbell Scientific,107 temperature probe,412277,,
+Campbell Scientific,107 temperature probe,412427,,
Campbell Scientific,LevelVUE B10,1048,,
Campbell Scientific,LevelVUE B10,1064,,
Campbell Scientific,Pulse radar water-level sensor CS475A,43460111,,
@@ -39,6 +41,10 @@ Campbell Scientific,Titanium pressure transducer CS456,14010302,,
Campbell Scientific,Titanium pressure transducer CS456,70010135,,
Campbell Scientific,Titanium pressure transducer CS456,70010240,,
Campbell Scientific,Titanium pressure transducer CS456,70010248,,
+City Technology,T3H H2S sensor,01.44557167 112,,
+City Technology,T3H H2S sensor,01.44865262 112,,
+City Technology,T3STF SO2 sensor,01.45929880 013,,
+City Technology,T3STF SO2 sensor,01.45929894 013,,
Danish Meteorological Institute,FGE,S0257-E0299,,fluxgate
Danish Meteorological Institute,FGE,S0263-S0308,,fluxgate
Danish Meteorological Institute,FGE,S0330-E0397,,fluxgate
@@ -257,6 +263,8 @@ Geospace Technologies,GS-11D seismometer,MRP012,,
Geospace Technologies,GS-11D seismometer,MRP013,,
Geospace Technologies,GS-11D seismometer,MRP014,,
Geospace Technologies,Geospace sensor GS-20DM,DFDP#2,,
+Gill Instruments,Gill WindSonic WS60 OPT4,22370069,,
+Gill Instruments,Gill WindSonic WS60 OPT4,22490065,,
GNS Science,LM35,T001,,
GNS Science,LM35,T002,,
GNS Science,SDP,A1,,
@@ -455,7 +463,6 @@ Intech,Platinum resistance thermometer,001,,
Intech,Platinum resistance thermometer,002,,
Intech,Platinum resistance thermometer,003,,
Intech,Platinum resistance thermometer,004,,
-Kinemetrics,EpiSensor 2,185,,
Kinemetrics,FBA-23,25073,,
Kinemetrics,FBA-23,45577,,
Kinemetrics,FBA-23,WEL_WLN,,
@@ -663,7 +670,10 @@ Lennartz Electronic,LE-3DliteMkIII,J-0937,,
Lennartz Electronic,LE-3DliteMkIII,J-0940,,
Lennartz Electronic,LE-3DliteMkIII,J-0941,,
Lennartz Electronic,LE-3DliteMkIII,J-0942,,
+Lennartz Electronic,LE-3DliteMkIII,J-0943,,
Lennartz Electronic,LE-3DliteMkIII,J-0946,,
+Licor,Li-850 CO2/H2O Gas Analyzer,HGA-06812,,
+Licor,Li-850 CO2/H2O Gas Analyzer,HGA-06920,,
Nanometrics,Titan TACCL-N1,2590,,
Nanometrics,Titan TACCL-BH1,2363,,
Nanometrics,Trillium 120PA,730,,
@@ -766,7 +776,9 @@ Nanometrics,Trillium Horizon TH120-2,2584,,
Nanometrics,Trillium Horizon TH120-2,2692,,
Nanometrics,Trillium Horizon TH120-2,2745,,
Nanometrics,Trillium Horizon TH120-2,2836,,
+Nanometrics,Trillium Horizon TH120-2,2837,,
Nanometrics,Trillium Horizon TH120-2,2838,,
+Nanometrics,Trillium Horizon TH120-2,3356,,
OTT Hydromet,Compact Bubbler Sensor USGS model,002,,
OTT Hydromet,Compact Bubbler Sensor USGS model,407895,16026,
OTT Hydromet,Compact Bubbler Sensor USGS model,422837,,
diff --git a/cmd/chart-config/README.md b/cmd/chart-config/README.md
new file mode 100644
index 000000000..d839a6ceb
--- /dev/null
+++ b/cmd/chart-config/README.md
@@ -0,0 +1,73 @@
+# chart-config
+
+Build a chart plotting stream config file from delta meta & response information.
+
+## Overview
+
+The chart plotting software currently uses miniseed data as its input for plotting. To convert this to meaningful data, and to allow
+annotations some form of meta data is required.
+
+Two forms of metadata are compiles: the station and network descriptions; and the stream's scaling response to convert signal values.
+
+Extra streams can be provided, so long as the station details have been loaded into delta, this requires the stream srcname (NN_SSSS_LL_CCC)
+and the sampling frequency (e.g. `IU_RAR_10_BHZ:40`).
+
+## Usage:
+
+ ./chart-config [options]
+
+## Options:
+
+ -base string
+ delta base files
+ -channels value
+ channel selection regexp (default .*)
+ -exclude value
+ station exclusion regexp
+ -extra string
+ extra streams to include
+ -include value
+ station inclusion regexp
+ -locations value
+ location selection regexp (default .*)
+ -networks value
+ network selection regexp (default .*)
+ -output string
+ output chart configuration file
+ -primary string
+ add phase constituent for tsunami streams (default "M2")
+ -resp string
+ base directory for response xml files on disk
+ -single
+ only add one stream per station
+ -skip string
+ extra streams to exclude
+ -stations value
+ station selection regexp (default .*)
+
+## Example
+
+This is the output for the station `CAW` and the channel `EHZ`:
+
+```
+[
+ {
+ "srcname": "NZ_CAW_10_EHZ",
+ "network-code": "NZ",
+ "station-code": "CAW",
+ "location-code": "10",
+ "channel-code": "EHZ",
+ "station-name": "Cannon Point",
+ "internal-network": "WL",
+ "network-description": "Wellington regional seismic network",
+ "latitude": -41.107194232,
+ "longitude": 175.066438523,
+ "sampling-period": 10000000,
+ "sensitivity": 167772160,
+ "gain": 1,
+ "input_units": "m/s",
+ "output_units": "count"
+ }
+]
+```
+
diff --git a/cmd/chart-config/config.go b/cmd/chart-config/config.go
new file mode 100644
index 000000000..cc0a6e128
--- /dev/null
+++ b/cmd/chart-config/config.go
@@ -0,0 +1,81 @@
+package main
+
+import (
+ "bytes"
+ "encoding/json"
+ "io"
+ "os"
+ "time"
+)
+
+// Stream is used to identify and describe streams that may be used for chart drawing.
+type Stream struct {
+ // Srcname is the Stream identification encoded as per NN_SSSS_LL_CCC.
+ Srcname string `json:"srcname"`
+ // NetworkCode is the short code of Stream network (NN).
+ NetworkCode string `json:"network-code"`
+ // StationCode is the short code of the Stream station (SSSS).
+ StationCode string `json:"station-code"`
+ // LocationCode is the short code of the Stream site location (LL).
+ LocationCode string `json:"location-code"`
+ // ChannelCode is the short code of the Stream channel (CCC).
+ ChannelCode string `json:"channel-code"`
+ // StationName is the long name of the Stream station.
+ StationName string `json:"station-name"`
+ // InternalNetwok is the shore code of the Stream network lookup.
+ InternalNetwork string `json:"internal-network"`
+ // NetworkDescription is the long name of the Stream internal network.
+ NetworkDescription string `json:"network-description,omitempty"`
+ // Latitude is the Stream site latitude in decimal degrees.
+ Latitude float64 `json:"latitude"`
+ // Longitude is the Stream site longitude in decimal degrees.
+ Longitude float64 `json:"longitude"`
+ // Elevation is the Stream site height in meters above sea level.
+ Elevation float64 `json:"elevation,omitempty"`
+ // Depth is the Stream site depth in meters below water level.
+ Depth float64 `json:"depth,omitempty"`
+ // SamplingPeriod is the time interval between samples, in nanoseconds.
+ SamplingPeriod time.Duration `json:"sampling-period,omitempty"`
+ // TidalLag is lag of the primary tide for the site if appropriate.
+ TidalLag float64 `json:"tidal-lag,omitempty"`
+ // Sensitivity is the initial conversion factor to convert from counts to the desired units, or volts.
+ Sensitivity float64 `json:"sensitivity,omitempty"`
+ // Gain is an optional factor to convert from, usually, volts to the desired units.
+ Gain float64 `json:"gain,omitempty"`
+ // Bias is an optional factor to add to the output after scaling to offset the signal.
+ Bias float64 `json:"bias,omitempty"`
+ // InputUnits describes the expected input signal units.
+ InputUnits string `json:"input_units,omitempty"`
+ // OutputUnits describes the expected output signal units, which is usually counts.
+ OutputUnits string `json:"output_units,omitempty"`
+}
+
+// Config is a slice of Stream vales.
+type Config []Stream
+
+// Write sends a JSON encoded byte array to a Writer interface.
+func (c Config) Write(wr io.Writer) error {
+ enc := json.NewEncoder(wr)
+
+ return enc.Encode(c)
+}
+
+// Marshal converts a Config into a JSON encoded byte array.
+func (c Config) Marshal() ([]byte, error) {
+ var buf bytes.Buffer
+ if err := c.Write(&buf); err != nil {
+ return nil, err
+ }
+ return buf.Bytes(), nil
+}
+
+// Write sends a JSON encoded byte array to a file.
+func (c Config) WriteFile(path string) error {
+ file, err := os.Create(path)
+ if err != nil {
+ return err
+ }
+ defer file.Close()
+
+ return c.Write(file)
+}
diff --git a/cmd/chart-config/config_test.go b/cmd/chart-config/config_test.go
new file mode 100644
index 000000000..a20e257bf
--- /dev/null
+++ b/cmd/chart-config/config_test.go
@@ -0,0 +1,45 @@
+package main
+
+import (
+ "os"
+ "testing"
+
+ "github.com/google/go-cmp/cmp"
+)
+
+func TestConfig(t *testing.T) {
+
+ config := Config([]Stream{
+ {
+ Srcname: "NZ_CAW_10_EHZ",
+ NetworkCode: "NZ",
+ StationCode: "CAW",
+ LocationCode: "10",
+ ChannelCode: "EHZ",
+ StationName: "Cannon Point",
+ InternalNetwork: "WL",
+ NetworkDescription: "Wellington regional seismic network",
+ Latitude: -41.107194232,
+ Longitude: 175.066438523,
+ SamplingPeriod: 10000000,
+ Sensitivity: 167772160,
+ Gain: 1,
+ InputUnits: "m/s",
+ OutputUnits: "count",
+ },
+ })
+
+ raw, err := os.ReadFile("./testdata/config.json")
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ data, err := config.Marshal()
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ if !cmp.Equal(raw, data) {
+ t.Errorf("unexpected content -got/+exp\n%s", cmp.Diff(raw, data))
+ }
+}
diff --git a/cmd/chart-config/main.go b/cmd/chart-config/main.go
new file mode 100644
index 000000000..b75bbd7c5
--- /dev/null
+++ b/cmd/chart-config/main.go
@@ -0,0 +1,294 @@
+package main
+
+import (
+ "flag"
+ "fmt"
+ "log"
+ "os"
+ "regexp"
+ "strconv"
+ "strings"
+ "time"
+
+ "github.com/GeoNet/delta"
+ "github.com/GeoNet/delta/meta"
+)
+
+type Settings struct {
+ base string // optional delta base directory
+ resp string // optional delta resp directory
+
+ primary string // order by constituent
+ single bool // only a single stream per site
+
+ exclude regexp.Regexp // skip stations
+ include regexp.Regexp // include stations
+ stations regexp.Regexp // select stations
+ networks regexp.Regexp // select networks
+ locations regexp.Regexp // select locations
+ channels regexp.Regexp // select channels
+ skip string // select streams to exclude
+ extra string // extra streams to include
+
+ output string // optional output file
+}
+
+// MatchStation returns whether a stream with the given station and network codes should be included.
+func (s Settings) MatchStation(net, stn string) bool {
+ // include list
+ if s.include.String() != "" && s.include.MatchString(stn) {
+ return true
+ }
+ // exclude list
+ if s.exclude.String() != "" && s.exclude.MatchString(stn) {
+ return false
+ }
+ // must match network regexp
+ if !s.networks.MatchString(net) {
+ return false
+ }
+ // must match station regexp
+ if !s.stations.MatchString(stn) {
+ return false
+ }
+ return true
+}
+
+// MatchSite returns whether a stream with the given site code should be included.
+func (s Settings) MatchSite(loc string) bool {
+ return s.locations.MatchString(loc)
+}
+
+func main() {
+
+ var settings Settings
+
+ flag.Usage = func() {
+ fmt.Fprintf(os.Stderr, "\n")
+ fmt.Fprintf(os.Stderr, "Build a chart plotting config file\n")
+ fmt.Fprintf(os.Stderr, "\n")
+ fmt.Fprintf(os.Stderr, "Usage:\n")
+ fmt.Fprintf(os.Stderr, "\n")
+ fmt.Fprintf(os.Stderr, " %s [options]\n", os.Args[0])
+ fmt.Fprintf(os.Stderr, "\n")
+ fmt.Fprintf(os.Stderr, "Options:\n")
+ fmt.Fprintf(os.Stderr, "\n")
+ flag.PrintDefaults()
+ fmt.Fprintf(os.Stderr, "\n")
+ }
+
+ flag.StringVar(&settings.primary, "primary", "M2", "add phase constituent for tsunami streams")
+ flag.BoolVar(&settings.single, "single", false, "only add one stream per station")
+ flag.StringVar(&settings.base, "base", "", "delta base files")
+ flag.StringVar(&settings.resp, "resp", "", "base directory for response xml files on disk")
+ flag.TextVar(&settings.exclude, "exclude", ®exp.Regexp{}, "station exclusion regexp")
+ flag.TextVar(&settings.include, "include", ®exp.Regexp{}, "station inclusion regexp")
+ flag.TextVar(&settings.networks, "networks", regexp.MustCompile(".*"), "network selection regexp")
+ flag.TextVar(&settings.stations, "stations", regexp.MustCompile(".*"), "station selection regexp")
+ flag.TextVar(&settings.locations, "locations", regexp.MustCompile(".*"), "location selection regexp")
+ flag.TextVar(&settings.channels, "channels", regexp.MustCompile(".*"), "channel selection regexp")
+ flag.StringVar(&settings.skip, "skip", "", "extra streams to exclude")
+ flag.StringVar(&settings.extra, "extra", "", "extra streams to include")
+ flag.StringVar(&settings.output, "output", "", "output chart configuration file")
+
+ flag.Parse()
+
+ // if only single streams are needed
+ found := make(map[string]interface{})
+
+ // build map of streams to skip
+ skip := make(map[string]interface{})
+ for _, stream := range strings.Split(settings.skip, ",") {
+ if s := strings.TrimSpace(stream); s != "" {
+ skip[s] = true
+ }
+ }
+
+ set, err := delta.NewBase(settings.base)
+ if err != nil {
+ log.Fatalf("unable to create delta set: %v", err)
+ }
+
+ // these will override network selections
+ networks := make(map[string][]meta.Station)
+ stations := make(map[string]interface{})
+ for _, s := range set.Stations() {
+ if !settings.MatchStation(s.Network, s.Code) {
+ continue
+ }
+ // station must be still open
+ if time.Since(s.End) > 0 {
+ continue
+ }
+ networks[s.Network] = append(networks[s.Network], s)
+ stations[s.Code] = true
+ }
+
+ sites := make(map[string][]meta.Site)
+ for _, s := range set.Sites() {
+ // must match a station at least
+ if _, ok := stations[s.Station]; !ok {
+ continue
+ }
+ // must match expected locations
+ if !settings.MatchSite(s.Location) {
+ continue
+ }
+ // must still be operational
+ if time.Since(s.End) > 0 {
+ continue
+ }
+ sites[s.Station] = append(sites[s.Station], s)
+ }
+
+ // for extra sorting information
+ lags := make(map[string]float64)
+ for _, c := range set.Constituents() {
+ if c.Name != settings.primary {
+ continue
+ }
+ lags[c.Gauge] = c.Lag
+ }
+
+ // build streams, this forces an empty slice rather than a nil slice if empty.
+ streams := make([]Stream, 0)
+
+ // run through all known networks
+ for _, net := range set.Networks() {
+ // run through all desired stations for that given network
+ for _, stn := range networks[net.Code] {
+ // run through all sites for the given station
+ for _, site := range sites[stn.Code] {
+
+ // check in case of single site streams
+ if _, ok := found[stn.Code]; ok && settings.single {
+ continue
+ }
+
+ // run through each collection of componet, channel and streams.
+ for _, collection := range set.Collections(site) {
+
+ // must be current for chart configuration
+ if time.Since(collection.End) > 0 {
+ continue
+ }
+
+ // must match the requested channel codes
+ if !settings.channels.MatchString(collection.Code()) {
+ continue
+ }
+
+ // the stream needs a sampling rate
+ rate := collection.Stream.SamplingRate
+ if !(rate > 0.0) {
+ continue
+ }
+
+ // sampling period is the inverse of sampling rate.
+ period := time.Duration((float64(time.Second) / rate))
+ srcname := strings.Join([]string{
+ net.External,
+ site.Station,
+ site.Location,
+ collection.Code(),
+ }, "_")
+
+ if _, ok := skip[srcname]; ok {
+ continue
+ }
+
+ // find the response from the xml snippets
+ info, err := Response(settings.resp, collection)
+ if err != nil {
+ log.Fatalf("unable to find stream response %q: %v", srcname, err)
+ }
+
+ // build and store the stream details
+ streams = append(streams, Stream{
+ Srcname: srcname,
+ StationName: stn.Name,
+ NetworkDescription: net.Description,
+ StationCode: site.Station,
+ LocationCode: site.Location,
+ ChannelCode: collection.Code(),
+ NetworkCode: net.External,
+ InternalNetwork: net.Code,
+ Latitude: stn.Latitude,
+ Longitude: stn.Longitude,
+ Elevation: stn.Elevation,
+ Depth: stn.Depth,
+ SamplingPeriod: period,
+ TidalLag: lags[stn.Code],
+ Sensitivity: info.Sensitivity,
+ Gain: info.Gain,
+ Bias: info.Bias,
+ InputUnits: info.Input,
+ OutputUnits: info.Output,
+ })
+
+ // for single streams
+ found[stn.Code] = true
+ }
+ }
+ }
+ }
+
+ // there may be extra streams wanted, needs srcname and sampling rate.
+ for _, extra := range strings.Split(settings.extra, ",") {
+
+ // extract srcname and sampling rate
+ split := strings.Split(strings.TrimSpace(extra), ":")
+ if len(split) != 2 {
+ continue
+ }
+ rate, err := strconv.ParseFloat(split[1], 64)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if !(rate > 0.0) {
+ continue
+ }
+
+ // sampling period is the inverse of sampling rate.
+ period := time.Duration(float64(time.Second) / rate)
+
+ // decode the srcname for the given parts, ignore early streams with the location missing.
+ parts := strings.Split(strings.TrimSpace(split[0]), "_")
+ if len(parts) != 4 {
+ continue
+ }
+
+ // the station needs to be in delta at least.
+ stn, ok := set.Station(parts[1])
+ if !ok {
+ continue
+ }
+
+ // encode the extra streams
+ streams = append(streams, Stream{
+ Srcname: split[0],
+ StationName: stn.Name,
+ StationCode: parts[1],
+ LocationCode: parts[2],
+ ChannelCode: parts[3],
+ NetworkCode: parts[0],
+ InternalNetwork: parts[0],
+ Latitude: stn.Latitude,
+ Longitude: stn.Longitude,
+ Elevation: stn.Elevation,
+ SamplingPeriod: period,
+ })
+
+ }
+
+ switch {
+ case settings.output != "":
+ if err := Config(streams).WriteFile(settings.output); err != nil {
+ log.Fatalf("unable to create output file %q: %v", settings.output, err)
+ }
+ default:
+ if err := Config(streams).Write(os.Stdout); err != nil {
+ log.Fatalf("unable to write output: %v", err)
+ }
+ }
+}
diff --git a/cmd/chart-config/response.go b/cmd/chart-config/response.go
new file mode 100644
index 000000000..282350ff8
--- /dev/null
+++ b/cmd/chart-config/response.go
@@ -0,0 +1,69 @@
+package main
+
+import (
+ "encoding/xml"
+
+ "github.com/GeoNet/delta/internal/stationxml"
+ "github.com/GeoNet/delta/meta"
+ "github.com/GeoNet/delta/resp"
+)
+
+// ResponseInfo is used to store decoded stream conversion details.
+type ResponseInfo struct {
+ Sensitivity float64
+ Gain float64
+ Bias float64
+ Input string
+ Output string
+}
+
+// Response builds a ResponseInfor for the given response base, a possible sampling rate, and the component and channel codes.
+// If the sampling rate is given then only the component response information is used as this is likely a derived response.
+func Response(base string, collection meta.Collection) (*ResponseInfo, error) {
+
+ // simple response
+ info := ResponseInfo{
+ Sensitivity: 1.0,
+ Gain: 1.0,
+ }
+
+ // check both component and channel responses, other than if the rate is given.
+ for _, lookup := range []string{collection.Component.Response, collection.Channel.Response} {
+ if collection.Component.SamplingRate != 0.0 && lookup == collection.Channel.Response {
+ continue
+ }
+
+ // find the associated StationXML snippet, skip if missing
+ data, err := resp.LookupBase(base, lookup)
+ if err != nil || len(data) == 0 {
+ continue
+ }
+
+ // decode the response into a simple form.
+ var res stationxml.ResponseType
+ if err := xml.Unmarshal(data, &res); err != nil {
+ return nil, err
+ }
+
+ // extract the response details into the response info.
+ switch {
+ case res.InstrumentSensitivity != nil:
+ if info.Input == "" {
+ info.Input = res.InstrumentSensitivity.InputUnits.Name
+ }
+ info.Output = res.InstrumentSensitivity.OutputUnits.Name
+ info.Sensitivity *= res.InstrumentSensitivity.Value
+ case res.InstrumentPolynomial != nil:
+ if info.Input == "" {
+ info.Input = res.InstrumentPolynomial.InputUnits.Name
+ }
+ info.Output = res.InstrumentPolynomial.OutputUnits.Name
+ if coefs := res.PolynomialCoefficients(); len(coefs) == 2 {
+ info.Bias = coefs[0].Value
+ info.Gain = coefs[1].Value
+ }
+ }
+ }
+
+ return &info, nil
+}
diff --git a/cmd/chart-config/testdata/config.json b/cmd/chart-config/testdata/config.json
new file mode 100644
index 000000000..cb160c719
--- /dev/null
+++ b/cmd/chart-config/testdata/config.json
@@ -0,0 +1 @@
+[{"srcname":"NZ_CAW_10_EHZ","network-code":"NZ","station-code":"CAW","location-code":"10","channel-code":"EHZ","station-name":"Cannon Point","internal-network":"WL","network-description":"Wellington regional seismic network","latitude":-41.107194232,"longitude":175.066438523,"sampling-period":10000000,"sensitivity":167772160,"gain":1,"input_units":"m/s","output_units":"count"}]
diff --git a/cmd/geomag-config/config.go b/cmd/geomag-config/config.go
new file mode 100644
index 000000000..58d515931
--- /dev/null
+++ b/cmd/geomag-config/config.go
@@ -0,0 +1,58 @@
+package main
+
+import (
+ "encoding/json"
+ "io"
+ "time"
+)
+
+// Config describes the processing settings for a geomag stream.
+type Config struct {
+ // Srcname can be used as a stream key
+ Srcname string `json:"srcname"`
+ // Network is the expected network code as stored.
+ Network string `json:"network"`
+ // Station is the expected station code as stored.
+ Station string `json:"station"`
+ // Location is the expected site location code as stored.
+ Location string `json:"location"`
+ // Channel is the expected channel code as stored.
+ Channel string `json:"channel"`
+ // ScaleBias is the offset that needs to be added to each data sample.
+ ScaleBias float64 `json:"scale_bias"`
+ // ScaleFactor is the value that needs to be multiplied to each data sample.
+ ScaleFactor float64 `json:"scale_factor"`
+ // InputUnits describes the units for the input signal.
+ InputUnits string `json:"input_units"`
+ // OutputUnits describes the units for the output after scaling.
+ OutputUnits string `json:"output_units"`
+ // Start is the time when the scale factors are valid.
+ Start time.Time `json:"start"`
+ // End is the time when the scale factors are no longer valid.
+ End time.Time `json:"end"`
+}
+
+// Less can be used for sorting Config slices.
+func (c Config) Less(config Config) bool {
+ switch {
+ case c.Srcname < config.Srcname:
+ return true
+ case c.Srcname > config.Srcname:
+ return false
+ case c.Start.Before(config.Start):
+ return true
+ default:
+ return false
+ }
+}
+
+// Encode will write JSON encoded output of a Config slice.
+func Encode(wr io.Writer, d []Config) error {
+
+ // build an encoder
+ enc := json.NewEncoder(wr)
+ enc.SetIndent("", " ")
+
+ // do the encoding
+ return enc.Encode(d)
+}
diff --git a/cmd/geomag-config/main.go b/cmd/geomag-config/main.go
new file mode 100644
index 000000000..c845df9cf
--- /dev/null
+++ b/cmd/geomag-config/main.go
@@ -0,0 +1,212 @@
+package main
+
+import (
+ "flag"
+ "fmt"
+ "log"
+ "os"
+ "path/filepath"
+ "sort"
+ "strings"
+
+ "github.com/GeoNet/delta"
+ "github.com/GeoNet/delta/internal/stationxml"
+ "github.com/GeoNet/delta/resp"
+)
+
+// Settings holds the application configuration.
+type Settings struct {
+ base string // optional delta base directory
+ resp string // optional delta response directory
+ network string // geomag network code
+ output string // optional output file
+}
+
+func main() {
+
+ var settings Settings
+
+ flag.Usage = func() {
+ fmt.Fprintf(os.Stderr, "\n")
+ fmt.Fprintf(os.Stderr, "Build a geomag processing config file\n")
+ fmt.Fprintf(os.Stderr, "\n")
+ fmt.Fprintf(os.Stderr, "Usage:\n")
+ fmt.Fprintf(os.Stderr, "\n")
+ fmt.Fprintf(os.Stderr, " %s [options]\n", os.Args[0])
+ fmt.Fprintf(os.Stderr, "\n")
+ fmt.Fprintf(os.Stderr, "Options:\n")
+ fmt.Fprintf(os.Stderr, "\n")
+ flag.PrintDefaults()
+ fmt.Fprintf(os.Stderr, "\n")
+ }
+
+ flag.StringVar(&settings.base, "base", "", "delta base files")
+ flag.StringVar(&settings.resp, "resp", "", "delta base files")
+ flag.StringVar(&settings.network, "network", "GM", "geomag network code")
+ flag.StringVar(&settings.output, "output", "", "output geomag configuration file")
+
+ flag.Parse()
+
+ set, err := delta.NewBase(settings.base)
+ if err != nil {
+ log.Fatalf("unable to create delta set: %v", err)
+ }
+
+ // avoids the json null
+ configs := make([]Config, 0)
+
+ // external network lookup
+ externals := make(map[string]string)
+ for _, n := range set.Networks() {
+ externals[n.Code] = n.External
+ }
+
+ // network codes
+ codes := make(map[string]string)
+ for _, s := range set.Stations() {
+ codes[s.Code] = s.Network
+ }
+
+ // check each site, skip any that don't match the network
+ for _, site := range set.Sites() {
+ // must have a network code
+ n, ok := codes[site.Station]
+ if !ok || n != settings.network {
+ continue
+ }
+
+ // that code must have an external code
+ external, ok := externals[n]
+ if !ok {
+ continue
+ }
+
+ // examine the collection of information for each site
+ for _, collection := range set.Collections(site) {
+
+ // find any corrections that might be needed, e.g. gain or calibration
+ for _, correction := range set.Corrections(collection) {
+
+ pair := stationxml.NewResponse()
+
+ // adjust for corrections
+ if cal := correction.SensorCalibration; cal != nil {
+ pair.SetCalibration(cal.ScaleFactor, cal.ScaleBias, cal.ScaleAbsolute)
+ }
+ if gain := correction.Gain; gain != nil {
+ pair.SetGain(gain.Scale.Factor, gain.Scale.Bias, gain.Absolute)
+ }
+ if correction.Telemetry != nil {
+ pair.SetTelemetry(correction.Telemetry.ScaleFactor)
+ }
+ if correction.Preamp != nil {
+ pair.SetPreamp(correction.Preamp.ScaleFactor)
+ }
+
+ switch {
+ // handle instruments with a single response configution (usually no datalogger)
+ case collection.Component.SamplingRate != 0:
+
+ derived, err := resp.LookupBase(settings.resp, collection.Component.Response)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // generate the derived response
+ r, err := pair.Derived(derived)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if r.InstrumentSensitivity != nil {
+ configs = append(configs, Config{
+ Srcname: strings.Join([]string{external, site.Station, site.Location, collection.Code()}, "_"),
+ Network: external,
+ Station: site.Station,
+ Location: site.Location,
+ Channel: collection.Code(),
+ ScaleFactor: 1.0 / r.InstrumentSensitivity.Value,
+ ScaleBias: 0.0,
+ InputUnits: r.InstrumentSensitivity.InputUnits.Name,
+ OutputUnits: r.InstrumentSensitivity.OutputUnits.Name,
+ Start: correction.Start,
+ End: correction.End,
+ })
+ }
+ // handle instruments with a normal response configution (e.g. sensor and datalogger)
+ default:
+ sensor, err := resp.LookupBase(settings.resp, collection.Component.Response)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if err := pair.SetSensor(sensor); err != nil {
+ log.Fatal(err)
+ }
+
+ datalogger, err := resp.LookupBase(settings.resp, collection.Channel.Response)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if err := pair.SetDatalogger(datalogger); err != nil {
+ log.Fatal(err)
+ }
+
+ r, err := pair.ResponseType()
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ if r.InstrumentPolynomial != nil {
+ var factor, bias float64
+ for _, c := range r.InstrumentPolynomial.Coefficients {
+ switch c.Number {
+ case 1:
+ bias = c.Value
+ case 2:
+ factor = c.Value
+ }
+ }
+ configs = append(configs, Config{
+ Srcname: strings.Join([]string{external, site.Station, site.Location, collection.Code()}, "_"),
+ Network: external,
+ Station: site.Station,
+ Location: site.Location,
+ Channel: collection.Code(),
+ ScaleFactor: factor,
+ ScaleBias: bias,
+ InputUnits: r.InstrumentPolynomial.InputUnits.Name,
+ OutputUnits: r.InstrumentPolynomial.OutputUnits.Name,
+ Start: correction.Start,
+ End: correction.End,
+ })
+ }
+ }
+ }
+ }
+ }
+
+ sort.Slice(configs, func(i, j int) bool {
+ return configs[i].Less(configs[j])
+ })
+
+ switch {
+ case settings.output != "":
+ // need to have a base directory
+ if err := os.MkdirAll(filepath.Dir(settings.output), 0700); err != nil {
+ log.Fatalf("unable to make output directory to %q: %v", filepath.Dir(settings.output), err)
+ }
+ // output file has been given
+ file, err := os.Create(settings.output)
+ if err != nil {
+ log.Fatalf("unable to create output file %q: %v", settings.output, err)
+ }
+ defer file.Close()
+
+ if err := Encode(file, configs); err != nil {
+ log.Fatalf("unable to write output to %q: %v", settings.output, err)
+ }
+ default:
+ if err := Encode(os.Stdout, configs); err != nil {
+ log.Fatalf("unable to write output: %v", err)
+ }
+ }
+}
diff --git a/cmd/sensor-config/README.md b/cmd/sensor-config/README.md
new file mode 100644
index 000000000..088b1098d
--- /dev/null
+++ b/cmd/sensor-config/README.md
@@ -0,0 +1,46 @@
+# sensor-config
+
+Build a sensor description file
+
+## output
+
+The output XML (default) or JSON file provides a description of all sensor installations and manual collection points.
+This is aimed at a mapping or site discovery service.
+
+## usage
+
+ ./sensor-config [options]
+
+## options
+
+ -base string
+ delta base files
+ -building string
+ building camera network code (default "BC")
+ -coastal string
+ coastal tsunami gauge network code (default "TG")
+ -combined value
+ combined sensor location codes (default ^[123])
+ -dart string
+ dart buoy network code (default "TD")
+ -doas string
+ doas network code (default "EN")
+ -enviro string
+ envirosensor network code (default "EN")
+ -geomag value
+ geomag sensor codes (default ^5)
+ -json
+ use JSON for output format
+ -lentic string
+ lentic tsunami gauge network code (default "LG")
+ -manual string
+ manualcollect network code (default "MC")
+ -networks string
+ installed network codes (default "AK,CB,CH,EC,FI,HB,KI,NM,NZ,OT,RA,RT,SC,SI,SM,SP,TP,TR,WL")
+ -output string
+ output sensor description file
+ -volcano string
+ volcano camera network code (default "VC")
+ -water value
+ water pressue sensor codes (default ^4)
+
diff --git a/cmd/sensor-config/dart.go b/cmd/sensor-config/dart.go
new file mode 100644
index 000000000..6e1ef653d
--- /dev/null
+++ b/cmd/sensor-config/dart.go
@@ -0,0 +1,90 @@
+package main
+
+import (
+ "sort"
+
+ "github.com/GeoNet/delta/meta"
+)
+
+func (n *Network) Dart(set *meta.Set, network, label string) error {
+
+ net, ok := set.Network(network)
+ if !ok {
+ return nil
+ }
+
+ for _, stn := range set.Stations() {
+ if stn.Network != net.Code {
+ continue
+ }
+
+ var sites []Site
+ for _, site := range set.Sites() {
+ if site.Station != stn.Code {
+ continue
+ }
+
+ var sensors []Sensor
+
+ for _, v := range set.InstalledRecorders() {
+ if v.Station != site.Station {
+ continue
+ }
+ if v.Location != site.Location {
+ continue
+ }
+
+ sensors = append(sensors, Sensor{
+ Make: v.InstalledSensor.Make,
+ Model: v.InstalledSensor.Model,
+ Type: label,
+
+ StartDate: v.Start,
+ EndDate: v.End,
+ })
+ }
+
+ sort.Slice(sensors, func(i, j int) bool {
+ return sensors[i].Less(sensors[j])
+ })
+
+ sites = append(sites, Site{
+ Code: site.Location,
+
+ Latitude: site.Latitude,
+ Longitude: site.Longitude,
+ Depth: site.Depth,
+ Datum: site.Datum,
+ Survey: site.Survey,
+
+ StartDate: site.Start,
+ EndDate: site.End,
+
+ Sensors: sensors,
+ })
+ }
+
+ sort.Slice(sites, func(i, j int) bool {
+ return sites[i].Less(sites[j])
+ })
+
+ n.Buoys = append(n.Buoys, Station{
+ Code: stn.Code,
+ Network: net.External,
+ Name: stn.Name,
+ Description: net.Description,
+
+ Latitude: stn.Latitude,
+ Longitude: stn.Longitude,
+ Depth: stn.Depth,
+ Datum: stn.Datum,
+
+ StartDate: stn.Start,
+ EndDate: stn.End,
+
+ Sites: sites,
+ })
+ }
+
+ return nil
+}
diff --git a/cmd/sensor-config/envirosensor.go b/cmd/sensor-config/envirosensor.go
new file mode 100644
index 000000000..127286a69
--- /dev/null
+++ b/cmd/sensor-config/envirosensor.go
@@ -0,0 +1,106 @@
+package main
+
+import (
+ "sort"
+
+ "github.com/GeoNet/delta/meta"
+)
+
+func (n *Network) EnviroSensor(set *meta.Set, enviro string, label string) error {
+
+ net, ok := set.Network(enviro)
+ if !ok {
+ return nil
+ }
+
+ valid := make(map[string]interface{})
+ for _, f := range set.Features() {
+ valid[f.Station] = true
+ }
+
+ for _, stn := range set.Stations() {
+ if _, ok := valid[stn.Code]; !ok {
+ continue
+ }
+
+ if stn.Network != enviro {
+ continue
+ }
+
+ var sites []Site
+ for _, site := range set.Sites() {
+ if site.Station != stn.Code {
+ continue
+ }
+
+ var sensors []Sensor
+ for _, v := range set.InstalledSensors() {
+ if v.Station != site.Station {
+ continue
+ }
+ if v.Location != site.Location {
+ continue
+ }
+
+ sensors = append(sensors, Sensor{
+ Type: label,
+ Make: v.Make,
+ Model: v.Model,
+
+ Azimuth: v.Azimuth,
+ Method: v.Method,
+ Dip: v.Dip,
+ Vertical: v.Vertical,
+ North: v.North,
+ East: v.East,
+
+ StartDate: v.Start,
+ EndDate: v.End,
+ })
+ }
+
+ sort.Slice(sensors, func(i, j int) bool {
+ return sensors[i].Less(sensors[j])
+ })
+
+ sites = append(sites, Site{
+ Code: site.Location,
+
+ Latitude: site.Latitude,
+ Longitude: site.Longitude,
+ Elevation: site.Elevation,
+ Datum: site.Datum,
+ Survey: site.Survey,
+
+ StartDate: site.Start,
+ EndDate: site.End,
+
+ Sensors: sensors,
+ })
+ }
+
+ sort.Slice(sites, func(i, j int) bool {
+ return sites[i].Less(sites[j])
+ })
+
+ n.Stations = append(n.Stations, Station{
+ Code: stn.Code,
+ Network: net.External,
+ Name: stn.Name,
+ Description: net.Description,
+
+ Latitude: stn.Latitude,
+ Longitude: stn.Longitude,
+ Elevation: stn.Elevation,
+ Depth: stn.Depth,
+ Datum: stn.Datum,
+
+ StartDate: stn.Start,
+ EndDate: stn.End,
+
+ Sites: sites,
+ })
+ }
+
+ return nil
+}
diff --git a/cmd/sensor-config/gnss.go b/cmd/sensor-config/gnss.go
new file mode 100644
index 000000000..12c603390
--- /dev/null
+++ b/cmd/sensor-config/gnss.go
@@ -0,0 +1,97 @@
+package main
+
+import (
+ "sort"
+
+ "github.com/GeoNet/delta/meta"
+)
+
+func (n *Network) Gnss(set *meta.Set, antenna, receiver string) error {
+
+ for _, mark := range set.Marks() {
+ net, ok := set.Network(mark.Network)
+ if !ok {
+ continue
+ }
+
+ monument, ok := set.Monument(mark.Code)
+ if !ok {
+ continue
+ }
+
+ var receivers []Sensor
+ for _, r := range set.DeployedReceivers() {
+ if r.Mark != mark.Code {
+ continue
+ }
+
+ receivers = append(receivers, Sensor{
+ Make: r.Make,
+ Model: r.Model,
+ Type: receiver,
+
+ StartDate: r.Start,
+ EndDate: r.End,
+ })
+ }
+
+ sort.Slice(receivers, func(i, j int) bool {
+ return receivers[i].Less(receivers[j])
+ })
+
+ var antennas []Sensor
+ for _, a := range set.InstalledAntennas() {
+ if a.Mark != mark.Code {
+ continue
+ }
+
+ antennas = append(antennas, Sensor{
+ Make: a.Make,
+ Model: a.Model,
+ Type: antenna,
+
+ Vertical: a.Vertical,
+ North: a.North,
+ East: a.East,
+ Azimuth: a.Azimuth,
+
+ StartDate: a.Start,
+ EndDate: a.End,
+ })
+ }
+
+ sort.Slice(antennas, func(i, j int) bool {
+ return antennas[i].Less(antennas[j])
+ })
+
+ n.Marks = append(n.Marks, Mark{
+ Code: mark.Code,
+ Network: net.External,
+ Name: mark.Name,
+ DomesNumber: monument.DomesNumber,
+ Description: net.Description,
+
+ Latitude: mark.Latitude,
+ Longitude: mark.Longitude,
+ Elevation: mark.Elevation,
+ Datum: mark.Datum,
+
+ GroundRelationship: monument.GroundRelationship,
+
+ MarkType: monument.MarkType,
+ MonumentType: monument.Type,
+ FoundationType: monument.FoundationType,
+ FoundationDepth: monument.FoundationDepth,
+ Bedrock: monument.Bedrock,
+ Geology: monument.Geology,
+
+ StartDate: mark.Start,
+ EndDate: mark.End,
+
+ Antennas: antennas,
+ Receivers: receivers,
+ })
+ }
+
+ return nil
+}
diff --git a/cmd/sensor-config/installed.go b/cmd/sensor-config/installed.go
new file mode 100644
index 000000000..1e611a1db
--- /dev/null
+++ b/cmd/sensor-config/installed.go
@@ -0,0 +1,117 @@
+package main
+
+import (
+ "regexp"
+ "sort"
+ "strings"
+
+ "github.com/GeoNet/delta/meta"
+)
+
+func (n *Network) InstalledSensors(set *meta.Set, match *regexp.Regexp, network, prefix string) error {
+
+ for _, stn := range set.Stations() {
+ net, ok := set.Network(stn.Network)
+ if !ok {
+ continue
+ }
+ if net.Code != network {
+ continue
+ }
+
+ var sites []Site
+ for _, site := range set.Sites() {
+ if site.Station != stn.Code {
+ continue
+ }
+
+ if !match.MatchString(site.Location) {
+ continue
+ }
+
+ sensors := make(map[Sensor][]string)
+
+ for _, c := range set.Collections(site) {
+ label := strings.TrimSpace(prefix + " " + c.Component.Type)
+
+ sensor := Sensor{
+ Type: label,
+ Make: c.InstalledSensor.Make,
+ Model: c.InstalledSensor.Model,
+
+ Azimuth: c.InstalledSensor.Azimuth,
+ Method: c.InstalledSensor.Method,
+ Dip: c.InstalledSensor.Dip,
+
+ Vertical: c.InstalledSensor.Vertical,
+ North: c.InstalledSensor.North,
+ East: c.InstalledSensor.East,
+
+ StartDate: c.InstalledSensor.Start,
+ EndDate: c.InstalledSensor.End,
+ }
+
+ sensors[sensor] = append(sensors[sensor], c.Code())
+ }
+
+ var list []Sensor
+ for sensor, chans := range sensors {
+ dedupe := make(map[string]interface{})
+ for _, c := range chans {
+ dedupe[c] = true
+ }
+ var channels []string
+ for k := range dedupe {
+ channels = append(channels, k)
+ }
+ sort.Strings(channels)
+ sensor.Channels = strings.Join(channels, ",")
+ list = append(list, sensor)
+ }
+
+ sort.Slice(list, func(i, j int) bool {
+ return list[i].Less(list[j])
+ })
+
+ sites = append(sites, Site{
+ Code: site.Location,
+
+ Latitude: site.Latitude,
+ Longitude: site.Longitude,
+ Elevation: site.Elevation,
+ Depth: site.Depth,
+ Datum: site.Datum,
+ Survey: site.Survey,
+
+ StartDate: site.Start,
+ EndDate: site.End,
+
+ Sensors: list,
+ })
+ }
+
+ sort.Slice(sites, func(i, j int) bool {
+ return sites[i].Less(sites[j])
+ })
+
+ n.Stations = append(n.Stations, Station{
+ Code: stn.Code,
+ Network: net.External,
+ Name: stn.Name,
+ Description: net.Description,
+
+ Latitude: stn.Latitude,
+ Longitude: stn.Longitude,
+ Elevation: stn.Elevation,
+ Depth: stn.Depth,
+ Datum: stn.Datum,
+
+ StartDate: stn.Start,
+ EndDate: stn.End,
+
+ Sites: sites,
+ })
+ }
+
+ return nil
+}
diff --git a/cmd/sensor-config/main.go b/cmd/sensor-config/main.go
new file mode 100644
index 000000000..b09af6f49
--- /dev/null
+++ b/cmd/sensor-config/main.go
@@ -0,0 +1,152 @@
+package main
+
+import (
+ "flag"
+ "fmt"
+ "log"
+ "os"
+ "regexp"
+ "strings"
+
+ "github.com/GeoNet/delta"
+)
+
+type Settings struct {
+ base string // options delta base file directory
+
+ networks string // overall installed sensor network code
+ dart string // DART network code
+ lentic string // coastal network code
+ coastal string // coastal network code
+ enviro string // envirosensor network code
+ manual string // manualcollect network code
+ volcano string // volcano camera network code
+ building string // building camera network code
+ doas string // doas network code
+
+ combined regexp.Regexp // installed location codes
+ water regexp.Regexp // water location codes
+ geomag regexp.Regexp // geomag location codes
+
+ output string // optional output file
+ json bool // use json for output format
+}
+
+func main() {
+
+ var settings Settings
+
+ flag.Usage = func() {
+ fmt.Fprintf(os.Stderr, "\n")
+ fmt.Fprintf(os.Stderr, "Build a sensor description file\n")
+ fmt.Fprintf(os.Stderr, "\n")
+ fmt.Fprintf(os.Stderr, "Usage:\n")
+ fmt.Fprintf(os.Stderr, "\n")
+ fmt.Fprintf(os.Stderr, " %s [options]\n", os.Args[0])
+ fmt.Fprintf(os.Stderr, "\n")
+ fmt.Fprintf(os.Stderr, "Options:\n")
+ fmt.Fprintf(os.Stderr, "\n")
+ flag.PrintDefaults()
+ fmt.Fprintf(os.Stderr, "\n")
+ }
+
+ flag.StringVar(&settings.base, "base", "", "delta base files")
+ flag.StringVar(&settings.networks, "networks", "AK,CB,CH,EC,FI,HB,KI,NM,NZ,OT,RA,RT,SC,SI,SM,SP,TP,TR,WL", "installed network codes")
+ flag.StringVar(&settings.coastal, "coastal", "TG", "coastal tsunami gauge network code")
+ flag.StringVar(&settings.lentic, "lentic", "LG", "lentic tsunami gauge network code")
+ flag.StringVar(&settings.dart, "dart", "TD", "dart buoy network code")
+ flag.StringVar(&settings.enviro, "enviro", "EN", "envirosensor network code")
+ flag.StringVar(&settings.manual, "manual", "MC", "manualcollect network code")
+ flag.StringVar(&settings.volcano, "volcano", "VC", "volcano camera network code")
+ flag.StringVar(&settings.building, "building", "BC", "building camera network code")
+ flag.StringVar(&settings.doas, "doas", "EN", "doas network code")
+ flag.TextVar(&settings.combined, "combined", regexp.MustCompile("^[123]"), "combined sensor location codes")
+ flag.TextVar(&settings.water, "water", regexp.MustCompile("^4"), "water pressue sensor codes")
+ flag.TextVar(&settings.geomag, "geomag", regexp.MustCompile("^5"), "geomag sensor codes")
+
+ flag.StringVar(&settings.output, "output", "", "output sensor description file")
+ flag.BoolVar(&settings.json, "json", false, "use JSON for output format")
+
+ flag.Parse()
+
+ set, err := delta.NewBase(settings.base)
+ if err != nil {
+ log.Fatalf("unable to load delta base files: %v", err)
+ }
+
+ var network Network
+
+ for _, n := range strings.Split(settings.networks, ",") {
+ if err := network.InstalledSensors(set, &settings.combined, strings.TrimSpace(n), ""); err != nil {
+ log.Fatalf("unable to build seismic details (%s): %v", n, err)
+ }
+ }
+
+ if err := network.InstalledSensors(set, &settings.water, settings.coastal, "Coastal"); err != nil {
+ log.Fatalf("unable to build water details: %v", err)
+ }
+
+ if err := network.InstalledSensors(set, &settings.water, settings.lentic, "Lake"); err != nil {
+ log.Fatalf("unable to build water details: %v", err)
+ }
+
+ if err := network.EnviroSensor(set, settings.enviro, "Environmental Sensor"); err != nil {
+ log.Fatalf("unable to build envirosensor configuration: %v", err)
+ }
+
+ if err := network.Dart(set, settings.dart, "DART Bottom Pressure Recorder"); err != nil {
+ log.Fatalf("unable to build dart configuration: %v", err)
+ }
+
+ if err := network.Gnss(set, "GNSS Antenna", "GNSS Receiver"); err != nil {
+ log.Fatalf("unable to build gnss configuration: %v", err)
+ }
+
+ if err := network.Camera(set, settings.volcano, "Camera"); err != nil {
+ log.Fatalf("unable to build camera configuration: %v", err)
+ }
+
+ if err := network.Camera(set, settings.building, "Camera"); err != nil {
+ log.Fatalf("unable to build camera configuration: %v", err)
+ }
+
+ if err := network.Doas(set, settings.doas, "DOAS"); err != nil {
+ log.Fatalf("unable to build camera configuration: %v", err)
+ }
+
+ if err := network.ManualCollection(set, settings.manual, "Manual Collection"); err != nil {
+ log.Fatalf("unable to build camera configuration: %v", err)
+ }
+
+ switch {
+ case settings.output != "":
+ // output file has been given
+ file, err := os.Create(settings.output)
+ if err != nil {
+ log.Fatalf("unable to create output file %q: %v", settings.output, err)
+ }
+ defer file.Close()
+
+ switch {
+ case settings.json:
+ if err := network.EncodeJSON(file); err != nil {
+ log.Fatalf("unable to marshal output file %q: %v", settings.output, err)
+ }
+ default:
+ if err := network.EncodeXML(file, "", " "); err != nil {
+ log.Fatalf("unable to marshal output file %q: %v", settings.output, err)
+ }
+ }
+ default:
+ switch {
+ case settings.json:
+ if err := network.EncodeJSON(os.Stdout); err != nil {
+ log.Fatalf("unable to marshal output: %v", err)
+ }
+ default:
+ if err := network.EncodeXML(os.Stdout, "", " "); err != nil {
+ log.Fatalf("unable to marshal output: %v", err)
+ }
+ }
+ }
+}
diff --git a/cmd/sensor-config/manualcollect.go b/cmd/sensor-config/manualcollect.go
new file mode 100644
index 000000000..1c848dcee
--- /dev/null
+++ b/cmd/sensor-config/manualcollect.go
@@ -0,0 +1,93 @@
+package main
+
+import (
+ "sort"
+
+ "github.com/GeoNet/delta/meta"
+)
+
+func (n *Network) ManualCollection(set *meta.Set, network, label string) error {
+
+ for _, sample := range set.Samples() {
+
+ net, ok := set.Network(sample.Network)
+ if !ok {
+ continue
+ }
+ if net.Code != network {
+ continue
+ }
+
+ var sites []Site
+ for _, point := range set.Points() {
+ if point.Sample != sample.Code {
+ continue
+ }
+
+ var sensors []Sensor
+ for _, feature := range set.Features() {
+ if feature.Station != sample.Code {
+ continue
+ }
+ if feature.Location != point.Location {
+ continue
+ }
+
+ sensors = append(sensors, Sensor{
+ Code: feature.Sublocation,
+ Property: feature.Property,
+ Aspect: feature.Aspect,
+ Type: label,
+ Description: feature.Description,
+
+ StartDate: feature.Start,
+ EndDate: feature.End,
+ })
+ }
+
+ sort.Slice(sensors, func(i, j int) bool {
+ return sensors[i].Less(sensors[j])
+ })
+
+ sites = append(sites, Site{
+ Code: point.Location,
+
+ Latitude: point.Latitude,
+ Longitude: point.Longitude,
+ Elevation: point.Elevation,
+ Depth: point.Depth,
+ Datum: point.Datum,
+ Survey: point.Survey,
+
+ StartDate: point.Start,
+ EndDate: point.End,
+
+ Sensors: sensors,
+ })
+ }
+
+ sort.Slice(sites, func(i, j int) bool {
+ return sites[i].Less(sites[j])
+ })
+
+ n.Samples = append(n.Samples, Station{
+ Code: sample.Code,
+ Network: net.External,
+ Name: sample.Name,
+ Description: net.Description,
+
+ Latitude: sample.Latitude,
+ Longitude: sample.Longitude,
+ Elevation: sample.Elevation,
+ Depth: sample.Depth,
+ Datum: sample.Datum,
+
+ StartDate: sample.Start,
+ EndDate: sample.End,
+
+ Sites: sites,
+ })
+ }
+
+ return nil
+}
diff --git a/cmd/sensor-config/mount.go b/cmd/sensor-config/mount.go
new file mode 100644
index 000000000..fe8937475
--- /dev/null
+++ b/cmd/sensor-config/mount.go
@@ -0,0 +1,187 @@
+package main
+
+import (
+ "sort"
+
+ "github.com/GeoNet/delta/meta"
+)
+
+func (n *Network) Camera(set *meta.Set, network, label string) error {
+
+ net, ok := set.Network(network)
+ if !ok {
+ return nil
+ }
+
+ for _, mount := range set.Mounts() {
+ if mount.Network != net.Code {
+ continue
+ }
+
+ var views []View
+ for _, view := range set.Views() {
+ if mount.Code != view.Mount {
+ continue
+ }
+
+ var cameras []Sensor
+
+ for _, camera := range set.InstalledCameras() {
+ if mount.Code != camera.Mount {
+ continue
+ }
+ if view.Code != camera.View {
+ continue
+ }
+ cameras = append(cameras, Sensor{
+ Make: camera.Make,
+ Model: camera.Model,
+ Type: label,
+
+ Dip: camera.Dip,
+ Azimuth: camera.Azimuth,
+
+ Vertical: camera.Vertical,
+ North: camera.North,
+ East: camera.East,
+
+ StartDate: camera.Start,
+ EndDate: camera.End,
+ })
+ }
+
+ sort.Slice(cameras, func(i, j int) bool {
+ return cameras[i].Less(cameras[j])
+ })
+
+ views = append(views, View{
+ Code: view.Code,
+ Label: view.Label,
+ Description: view.Description,
+
+ Azimuth: view.Azimuth,
+ Method: view.Method,
+ Dip: view.Dip,
+
+ StartDate: view.Start,
+ EndDate: view.End,
+
+ Sensors: cameras,
+ })
+ }
+
+ sort.Slice(views, func(i, j int) bool {
+ return views[i].Less(views[j])
+ })
+
+ n.Mounts = append(n.Mounts, Mount{
+ Code: mount.Code,
+ Network: net.External,
+ Name: mount.Name,
+ Description: net.Description,
+ Mount: mount.Description,
+
+ Latitude: mount.Latitude,
+ Longitude: mount.Longitude,
+ Elevation: mount.Elevation,
+ Datum: mount.Datum,
+
+ StartDate: mount.Start,
+ EndDate: mount.End,
+
+ Views: views,
+ })
+ }
+
+ return nil
+}
+
+func (n *Network) Doas(set *meta.Set, network, label string) error {
+
+ net, ok := set.Network(network)
+ if !ok {
+ return nil
+ }
+
+ for _, mount := range set.Mounts() {
+ if mount.Network != net.Code {
+ continue
+ }
+
+ var views []View
+ for _, view := range set.Views() {
+ if mount.Code != view.Mount {
+ continue
+ }
+
+ var doases []Sensor
+
+ for _, doas := range set.Doases() {
+ if mount.Code != doas.Mount {
+ continue
+ }
+ if view.Code != doas.View {
+ continue
+ }
+ doases = append(doases, Sensor{
+ Make: doas.Make,
+ Model: doas.Model,
+ Type: label,
+
+ Dip: doas.Dip,
+ Azimuth: doas.Azimuth,
+
+ Vertical: doas.Vertical,
+ North: doas.North,
+ East: doas.East,
+
+ StartDate: doas.Start,
+ EndDate: doas.End,
+ })
+ }
+
+ sort.Slice(doases, func(i, j int) bool {
+ return doases[i].Less(doases[j])
+ })
+
+ views = append(views, View{
+ Code: view.Code,
+ Label: view.Label,
+ Description: view.Description,
+
+ Azimuth: view.Azimuth,
+ Method: view.Method,
+ Dip: view.Dip,
+
+ StartDate: view.Start,
+ EndDate: view.End,
+
+ Sensors: doases,
+ })
+ }
+
+ sort.Slice(views, func(i, j int) bool {
+ return views[i].Less(views[j])
+ })
+
+ n.Mounts = append(n.Mounts, Mount{
+ Code: mount.Code,
+ Network: net.External,
+ Name: mount.Name,
+ Description: net.Description,
+ Mount: mount.Description,
+
+ Latitude: mount.Latitude,
+ Longitude: mount.Longitude,
+ Elevation: mount.Elevation,
+ Datum: mount.Datum,
+
+ StartDate: mount.Start,
+ EndDate: mount.End,
+
+ Views: views,
+ })
+ }
+
+ return nil
+}
diff --git a/cmd/sensor-config/network.go b/cmd/sensor-config/network.go
new file mode 100644
index 000000000..a300cf2c3
--- /dev/null
+++ b/cmd/sensor-config/network.go
@@ -0,0 +1,216 @@
+package main
+
+import (
+ "encoding/json"
+ "encoding/xml"
+ "fmt"
+ "io"
+ "time"
+)
+
+type Sensor struct {
+ Code string `xml:"code,attr,omitempty" json:"code,omitempty"`
+ Model string `xml:"model,attr,omitempty" json:"model,omitempty"`
+ Make string `xml:"make,attr,omitempty" json:"make,omitempty"`
+ Type string `xml:"type,attr,omitempty" json:"type,omitempty"`
+ Channels string `xml:"channels,attr,omitempty" json:"channels,omitempty"`
+ Description string `xml:"description,attr,omitempty" json:"description,omitempty"`
+ Property string `xml:"property,attr,omitempty" json:"property,omitempty"`
+ Aspect string `xml:"aspect,attr,omitempty" json:"aspect,omitempty"`
+
+ Azimuth float64 `xml:"azimuth,attr,omitempty" json:"azimuth,omitempty"`
+ Dip float64 `xml:"dip,attr,omitempty" json:"dip,omitempty"`
+ Method string `xml:"method,attr,omitempty" json:"method,omitempty"`
+
+ Vertical float64 `xml:"vertical,attr,omitempty" json:"vertical,omitempty"`
+ North float64 `xml:"north,attr,omitempty" json:"north,omitempty"`
+ East float64 `xml:"east,attr,omitempty" json:"east,omitempty"`
+
+ StartDate time.Time `xml:"startDate,attr,omitempty" json:"start-date,omitempty"`
+ EndDate time.Time `xml:"endDate,attr,omitempty" json:"end-date,omitempty"`
+}
+
+func (s Sensor) Less(sensor Sensor) bool {
+ switch {
+ case s.StartDate.Before(sensor.StartDate):
+ return true
+ case s.StartDate.After(sensor.StartDate):
+ return false
+ case s.Code < sensor.Code:
+ return true
+ case s.Code > sensor.Code:
+ return false
+ case s.Make < sensor.Make:
+ return true
+ case s.Make > sensor.Make:
+ return false
+ case s.Model < sensor.Model:
+ return true
+ case s.Model > sensor.Model:
+ return false
+ case s.Property < sensor.Property:
+ return true
+ case s.Property > sensor.Property:
+ return false
+ case s.Aspect < sensor.Aspect:
+ return false
+ default:
+ return false
+ }
+}
+
+type Site struct {
+ Code string `xml:"code,attr,omitempty" json:"code,omitempty"`
+ Name string `xml:"name,attr,omitempty" json:"name,omitempty"`
+
+ Latitude float64 `xml:"latitude,attr,omitempty" json:"latitude,omitempty"`
+ Longitude float64 `xml:"longitude,attr,omitempty" json:"longitude,omitempty"`
+ Elevation float64 `xml:"elevation,attr,omitempty" json:"elevation,omitempty"`
+ Depth float64 `xml:"depth,attr,omitempty" json:"depth,omitempty"`
+ Datum string `xml:"datum,attr,omitempty" json:"datum,omitempty"`
+ Survey string `xml:"survey,attr,omitempty" json:"survey,omitempty"`
+ RelativeHeight float64 `xml:"relativeHeight,attr,omitempty" json:"relative-height,omitempty"`
+
+ StartDate time.Time `xml:"startDate,attr,omitempty" json:"start-date,omitempty"`
+ EndDate time.Time `xml:"endDate,attr,omitempty" json:"end-date,omitempty"`
+
+ Sensors []Sensor `xml:"Sensor,omitempty" json:"sensor,omitempty"`
+}
+
+func (s Site) Less(site Site) bool {
+ return s.Code < site.Code
+}
+
+type Station struct {
+ Code string `xml:"code,attr" json:"code,omitempty"`
+ Network string `xml:"network,attr,omitempty" json:"network,omitempty"`
+
+ Name string `xml:"name,attr,omitempty" json:"name,omitempty"`
+ Description string `xml:"description,attr,omitempty" json:"description,omitempty"`
+ StartDate time.Time `xml:"startDate,attr,omitempty" json:"start-date,omitempty"`
+ EndDate time.Time `xml:"endDate,attr,omitempty" json:"end-date,omitempty"`
+
+ Latitude float64 `xml:"latitude,attr,omitempty" json:"latitude,omitempty"`
+ Longitude float64 `xml:"longitude,attr,omitempty" json:"longitude,omitempty"`
+ Elevation float64 `xml:"elevation,attr,omitempty" json:"elevation,omitempty"`
+ Depth float64 `xml:"depth,attr,omitempty" json:"depth,omitempty"`
+ Datum string `xml:"datum,attr,omitempty" json:"datum,omitempty"`
+
+ Sites []Site `xml:"Site,omitempty" json:"site,omitempty"`
+}
+
+func (s Station) Less(station Station) bool {
+ switch {
+ case s.Code < station.Code:
+ return true
+ case s.Code > station.Code:
+ return false
+ case s.Network < station.Network:
+ return true
+ default:
+ return false
+ }
+}
+
+type Mark struct {
+ Code string `xml:"code,attr" json:"code,omitempty"`
+ Network string `xml:"network,attr,omitempty" json:"network,omitempty"`
+
+ Name string `xml:"name,attr,omitempty" json:"name,omitempty"`
+ Description string `xml:"description,attr,omitempty" json:"description,omitempty"`
+ DomesNumber string `xml:"domesNumber,attr,omitempty" json:"domes-number,omitempty"`
+
+ Latitude float64 `xml:"latitude,attr,omitempty" json:"latitude,omitempty"`
+ Longitude float64 `xml:"longitude,attr,omitempty" json:"longitude,omitempty"`
+ Elevation float64 `xml:"elevation,attr,omitempty" json:"elevation,omitempty"`
+ GroundRelationship float64 `xml:"groundRelationship,attr,omitempty" json:"ground-relationship,omitempty"`
+ Datum string `xml:"datum,attr,omitempty" json:"datum,omitempty"`
+
+ MarkType string `xml:"markType,attr,omitempty" json:"mark-type,omitempty"`
+ MonumentType string `xml:"monumentType,attr,omitempty" json:"monument-type,omitempty"`
+ FoundationType string `xml:"foundationType,attr,omitempty" json:"foundation-type,omitempty"`
+ FoundationDepth float64 `xml:"foundationDepth,attr,omitempty" json:"foundation-depth,omitempty"`
+ Bedrock string `xml:"bedrock,attr,omitempty" json:"bedrock,omitempty"`
+ Geology string `xml:"geology,attr,omitempty" json:"geology,omitempty"`
+
+ StartDate time.Time `xml:"startDate,attr,omitempty" json:"start-date,omitempty"`
+ EndDate time.Time `xml:"endDate,attr,omitempty" json:"end-date,omitempty"`
+
+ Antennas []Sensor `xml:"Antenna,omitempty" json:"antenna,omitempty"`
+ Receivers []Sensor `xml:"Receiver,omitempty" json:"receiver,omitempty"`
+}
+
+func (m Mark) Less(mark Mark) bool {
+ return m.Code < mark.Code
+}
+
+type View struct {
+ Code string `xml:"code,attr" json:"code,omitempty"`
+ Label string `xml:"label,attr,omitempty" json:"label,omitempty"`
+ Description string `xml:"description,attr,omitempty" json:"description,omitempty"`
+
+ Azimuth float64 `xml:"azimuth,attr,omitempty" json:"azimuth,omitempty"`
+ Method string `xml:"method,attr,omitempty" json:"method,omitempty"`
+ Dip float64 `xml:"dip,attr,omitempty" json:"dip,omitempty"`
+
+ StartDate time.Time `xml:"startDate,attr,omitempty" json:"start-date,omitempty"`
+ EndDate time.Time `xml:"endDate,attr,omitempty" json:"end-date,omitempty"`
+
+ Sensors []Sensor `xml:"Sensor,omitempty" json:"sensor,omitempty"`
+}
+
+func (v View) Less(view View) bool {
+ return v.Code < view.Code
+}
+
+type Mount struct {
+ Code string `xml:"code,attr" json:"code,omitempty"`
+ Network string `xml:"network,attr,omitempty" json:"network,omitempty"`
+
+ Name string `xml:"name,attr,omitempty" json:"name,omitempty"`
+ Description string `xml:"description,attr,omitempty" json:"description,omitempty"`
+ Mount string `xml:"mount,attr,omitempty" json:"mount,omitempty"`
+
+ Latitude float64 `xml:"latitude,attr" json:"latitude,omitempty"`
+ Longitude float64 `xml:"longitude,attr" json:"longitude,omitempty"`
+ Elevation float64 `xml:"elevation,attr" json:"elevation,omitempty"`
+ Datum string `xml:"datum,attr,omitempty" json:"datum,omitempty"`
+
+ StartDate time.Time `xml:"startDate,attr,omitempty" json:"start-date,omitempty"`
+ EndDate time.Time `xml:"endDate,attr,omitempty" json:"end-date,omitempty"`
+
+ Views []View `xml:"View,omitempty" json:"view,omitempty"`
+}
+
+func (m Mount) Less(mount Mount) bool {
+ return m.Code < mount.Code
+}
+
+type Network struct {
+ XMLName xml.Name `xml:"SensorXML"`
+
+ Stations []Station `xml:"Station,omitempty" json:"station,omitempty"`
+ Marks []Mark `xml:"Mark,omitempty" json:"mark,omitempty"`
+ Buoys []Station `xml:"Buoy,omitempty" json:"buoy,omitempty"`
+ Mounts []Mount `xml:"Mount,omitempty" json:"mount,omitempty"`
+ Samples []Station `xml:"Sample,omitempty" json:"sample,omitempty"`
+}
+
+func (n *Network) EncodeXML(wr io.Writer, prefix, indent string) error {
+ enc := xml.NewEncoder(wr)
+ enc.Indent(prefix, indent)
+ if _, err := fmt.Fprintf(wr, "%s", xml.Header); err != nil {
+ return err
+ }
+ if err := enc.Encode(n); err != nil {
+ return err
+ }
+ if _, err := fmt.Fprintf(wr, "\n"); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (n *Network) EncodeJSON(wr io.Writer) error {
+ return json.NewEncoder(wr).Encode(n)
+}
diff --git a/cmd/sensor-config/network_test.go b/cmd/sensor-config/network_test.go
new file mode 100644
index 000000000..473c6dbfc
--- /dev/null
+++ b/cmd/sensor-config/network_test.go
@@ -0,0 +1,326 @@
+package main
+
+import (
+ "bytes"
+ "os"
+ "testing"
+ "time"
+
+ "github.com/google/go-cmp/cmp"
+)
+
+func mustParse(str string) time.Time {
+ t, err := time.Parse(time.RFC3339, str)
+ if err != nil {
+ panic(err)
+ }
+ return t
+}
+
+func TestSensor(t *testing.T) {
+
+ example := Network{
+ Stations: []Station{
+ {
+ Code: "ABAZ",
+ Name: "Army Bay",
+ Network: "NZ",
+ Description: "Auckland volcano seismic network",
+ StartDate: mustParse("2008-10-13T00:00:00Z"),
+ EndDate: mustParse("9999-01-01T00:00:00Z"),
+ Latitude: -36.600224003,
+ Longitude: 174.832332909,
+ Elevation: 74,
+
+ Sites: []Site{
+ {
+ Code: "10",
+ Latitude: -36.600224003,
+ Longitude: 174.832332909,
+ Elevation: 74,
+ Datum: "WGS84",
+ Survey: "External GPS Device",
+ StartDate: mustParse("2008-10-13T04:00:00Z"),
+ EndDate: mustParse("2023-07-28T01:08:24Z"),
+
+ Sensors: []Sensor{
+ {
+ Model: "L4C-3D",
+ Make: "Sercel",
+ Type: "Short Period Seismometer",
+ Channels: "EHZ",
+ StartDate: mustParse("2008-10-13T04:00:00Z"),
+ EndDate: mustParse("2010-03-15T02:00:00Z"),
+ },
+ },
+ },
+ },
+ },
+ {
+ Code: "AUCT",
+ Name: "Auckland",
+ Network: "NZ",
+ Description: "National tsunami gauge network",
+ Latitude: -36.8314371,
+ Longitude: 174.7865372,
+ StartDate: mustParse("2009-03-26T00:00:00Z"),
+ EndDate: mustParse("9999-01-01T00:00:00Z"),
+
+ Sites: []Site{
+ {
+ Code: "40",
+ Latitude: -36.8314371,
+ Longitude: 174.7865372,
+ Datum: "WGS84",
+ Survey: "Unknown",
+ StartDate: mustParse("2009-03-26T00:00:00Z"),
+ EndDate: mustParse("9999-01-01T00:00:00Z"),
+
+ Sensors: []Sensor{
+ {
+ Model: "Druck PTX-1830",
+ Make: "General Electric",
+ Type: "Coastal Pressure Sensor",
+ Channels: "BTT",
+ StartDate: mustParse("2009-03-26T02:30:00Z"),
+ EndDate: mustParse("2012-08-28T01:00:00Z"),
+ },
+ },
+ },
+ },
+ },
+ {
+ Code: "ALS1R",
+ Name: "Auckland Scenic Drive Waiatarua",
+ Network: "NZ",
+ Description: "GeoNet environmental data using low rate data collection platform network",
+ StartDate: mustParse("2023-02-24T01:09:00Z"),
+ EndDate: mustParse("9999-01-01T00:00:00Z"),
+ Latitude: -36.93285,
+ Longitude: 174.576436,
+ Elevation: 370.17,
+
+ Sites: []Site{
+ {
+ Code: "01",
+ Latitude: -36.93285,
+ Longitude: 174.576436,
+ Elevation: 370.17,
+ Datum: "WGS84",
+ Survey: "External GPS Device",
+ StartDate: mustParse("2023-02-24T01:09:00Z"),
+ EndDate: mustParse("9999-01-01T00:00:00Z"),
+
+ Sensors: []Sensor{
+ {
+ Model: "Tipping bucket rain gauge TB3 0.2mm",
+ Make: "Hyquest",
+ Type: "Environmental Sensor",
+ StartDate: mustParse("2023-02-24T01:09:00Z"),
+ EndDate: mustParse("9999-01-01T00:00:00Z"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Marks: []Mark{
+ {
+ Code: "2004",
+ Name: "Puketapu Road",
+ Network: "NZ",
+ Description: "Temporary sites",
+ Latitude: -38.672344067,
+ Longitude: 175.804587325,
+ Elevation: 514.959,
+ MarkType: "Forced Centering",
+ FoundationType: "Reinforced Concrete",
+ StartDate: mustParse("2000-06-19T00:00:00Z"),
+ EndDate: mustParse("9999-01-01T00:00:00Z"),
+
+ Antennas: []Sensor{
+ {
+ Model: "TRM57971.00",
+ Make: "Trimble Navigation Ltd.",
+ Type: "GNSS Antenna",
+ StartDate: mustParse("2022-12-06T01:37:08Z"),
+ EndDate: mustParse("9999-01-01T00:00:00Z"),
+ },
+ },
+ Receivers: []Sensor{
+ {
+ Model: "TRIMBLE ALLOY",
+ Make: "Trimble Navigation Ltd.",
+ Type: "GNSS Receiver",
+ StartDate: mustParse("2022-12-06T01:37:08Z"),
+ EndDate: mustParse("9999-01-01T00:00:00Z"),
+ },
+ },
+ },
+ },
+ Buoys: []Station{
+ {
+ Code: "NZA",
+ Name: "Offshore Wellington Hikurangi",
+ Network: "NZ",
+ Description: "National tsunami deep ocean network",
+ StartDate: mustParse("2019-12-21T17:00:00Z"),
+ EndDate: mustParse("9999-01-01T00:00:00Z"),
+ Latitude: -42.371,
+ Longitude: 176.911,
+ Depth: 2690,
+ Datum: "WGS84",
+
+ Sites: []Site{
+ {
+ Code: "40",
+ Latitude: -42.3707,
+ Longitude: 176.9109,
+ Depth: 2690,
+ Datum: "WGS84",
+ Survey: "Unknown",
+ StartDate: mustParse("2019-12-21T17:00:00Z"),
+ EndDate: mustParse("2021-12-17T01:00:00Z"),
+
+ Sensors: []Sensor{
+ {
+ Model: "BPR Subsystem",
+ Make: "SAIC",
+ Type: "DART Bottom Pressure Recorder",
+ StartDate: mustParse("2019-12-22T00:00:00Z"),
+ EndDate: mustParse("2021-12-17T23:59:59Z"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Mounts: []Mount{
+ {
+ Code: "DISC",
+ Name: "Discovery Lodge",
+ Network: "VC",
+ Description: "Volcano monitoring camera network",
+ Latitude: -39.156143224,
+ Longitude: 175.491281443,
+ Elevation: 9999,
+ Datum: "WGS84",
+ StartDate: mustParse("2020-07-28T02:20:00Z"),
+ EndDate: mustParse("9999-01-01T00:00:00Z"),
+
+ Views: []View{
+ {
+ Code: "01",
+ Label: "Ruapehu North",
+ Description: "Images of Mount Ruapehu from the volcano camera situated at Discovery Lodge.",
+ Azimuth: 155,
+ StartDate: mustParse("2020-07-28T02:20:00Z"),
+ EndDate: mustParse("9999-01-01T00:00:00Z"),
+
+ Sensors: []Sensor{
+ {
+ Model: "M12 3MP",
+ Make: "Mobotix AG",
+ Type: "Camera",
+ Azimuth: 144,
+ Dip: 6,
+ StartDate: mustParse("2020-07-28T02:20:00Z"),
+ EndDate: mustParse("2021-02-04T21:10:00Z"),
+ },
+ },
+ },
+ },
+ },
+ {
+
+ Code: "RUD01",
+ Name: "Tukino Skifield",
+ Network: "NZ",
+ Description: "GeoNet environmental data using low rate data collection platform network",
+ Latitude: -39.2775,
+ Longitude: 175.6087,
+ Elevation: 1748,
+ Datum: "WGS84",
+ StartDate: mustParse("2021-05-05T05:13:00Z"),
+ EndDate: mustParse("9999-01-01T00:00:00Z"),
+
+ Views: []View{
+ {
+ Code: "01",
+ Label: "Tukino Skifield",
+ Description: "SO2 from Ruapehu from Tukino Skifield",
+ Azimuth: 266,
+ Dip: -60,
+ StartDate: mustParse("2022-05-05T05:13:00Z"),
+ EndDate: mustParse("9999-01-01T00:00:00Z"),
+
+ Sensors: []Sensor{
+ {
+ Model: "Avaspec-Mini2048CL",
+ Make: "Avaspec CompactLine",
+ Type: "DOAS",
+ Azimuth: 266,
+ Dip: -60,
+ StartDate: mustParse("2022-05-05T05:13:00Z"),
+ EndDate: mustParse("9999-01-01T00:00:00Z"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Samples: []Station{
+ {
+ Code: "WI228",
+ Name: "White Island Yellow Duck Stream",
+ Network: "MC",
+ Description: "Manually collected volcano monitoring data",
+ StartDate: mustParse("2017-06-29T00:00:00Z"),
+ EndDate: mustParse("2017-06-29T00:00:00Z"),
+ Latitude: -37.520946,
+ Longitude: 177.186671,
+ Elevation: 24,
+ Datum: "WGS84",
+
+ Sites: []Site{
+ {
+ Code: "MC01",
+ Latitude: -37.520946,
+ Longitude: 177.186671,
+ Elevation: 24,
+ Datum: "WGS84",
+ Survey: "External GPS Device",
+ StartDate: mustParse("2017-06-29T00:00:00Z"),
+ EndDate: mustParse("2017-06-29T00:00:00Z"),
+
+ Sensors: []Sensor{
+ {
+ Code: "01",
+ Property: "Al-conc",
+ Type: "Manual Collection",
+ Aspect: "stream",
+ StartDate: mustParse("2017-06-29T00:00:00Z"),
+ EndDate: mustParse("2017-06-29T00:00:00Z"),
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+
+ var buf bytes.Buffer
+
+ if err := example.EncodeXML(&buf, "", " "); err != nil {
+ t.Fatal(err)
+ }
+
+ raw, err := os.ReadFile("testdata/sensor.xml")
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ if !bytes.Equal(buf.Bytes(), raw) {
+ t.Errorf("unexpected content -got/+exp\n%s", cmp.Diff(buf.String(), string(raw)))
+ }
+}
diff --git a/cmd/sensor-config/testdata/sensor.xml b/cmd/sensor-config/testdata/sensor.xml
new file mode 100644
index 000000000..0112b1a38
--- /dev/null
+++ b/cmd/sensor-config/testdata/sensor.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cmd/tilde-config/manualcollect.go b/cmd/tilde-config/manualcollect.go
index ba16f670b..a5f84dec3 100644
--- a/cmd/tilde-config/manualcollect.go
+++ b/cmd/tilde-config/manualcollect.go
@@ -11,25 +11,8 @@ func (t *Tilde) ManualCollection(set *meta.Set, network string) error {
var stns []Station
for _, s := range set.Samples() {
var sens []Sensor
- for _, c := range set.Sites() {
- if c.Station != s.Code {
- continue
- }
-
- // find list of installed sensors
- var installs []meta.InstalledSensor
- for _, v := range set.InstalledSensors() {
- if v.Station != c.Station {
- continue
- }
- if v.Location != c.Location {
- continue
- }
- installs = append(installs, v)
- }
-
- // skip if there are installed sensors (these are meant to be manual)
- if len(installs) > 0 {
+ for _, c := range set.Points() {
+ if c.Sample != s.Code {
continue
}
diff --git a/environment/features.csv b/environment/features.csv
index cbfd29254..8eeaa2c22 100644
--- a/environment/features.csv
+++ b/environment/features.csv
@@ -1,6 +1,6 @@
Station,Location,Sublocation,Property,Description,Aspect,Start Date,End Date
-ALS1R,01,01,rainfall,total,,2023-02-24T01:09:00Z,9999-01-01T00:00:00Z
-ALS1R,02,01,rainfall,total,,2023-02-24T01:09:00Z,9999-01-01T00:00:00Z
+ALS1R,01,01,rainfall,total,,2023-02-24T01:09:00Z,2024-02-25T13:50:01Z
+ALS1R,02,01,rainfall,total,,2023-02-24T01:09:00Z,2024-02-25T13:50:01Z
ALS2R,01,01,rainfall,total,,2023-02-23T03:59:00Z,9999-01-01T00:00:00Z
ALS2R,02,01,rainfall,total,,2023-02-23T03:59:00Z,9999-01-01T00:00:00Z
FOXAG,01,01,rainfall,total,,2019-02-06T13:10:00Z,9999-01-01T00:00:00Z
@@ -106,6 +106,11 @@ NA001,MC01,01,temperature,fumarole,,1978-07-01T00:00:00Z,9999-01-01T00:00:00Z
NA002,01,01,temperature,air,,2021-05-06T04:00:00Z,9999-01-01T00:00:00Z
NA002,02,01,temperature,fumarole,,2021-05-06T04:00:00Z,9999-01-01T00:00:00Z
NA002,03,01,temperature,fumarole,,2021-05-06T04:00:00Z,9999-01-01T00:00:00Z
+NA002,04,01,CO2-conc,air,,2024-03-21T03:00:00Z,9999-01-01T00:00:00Z
+NA002,05,01,SO2-conc,air,,2024-03-21T03:00:00Z,9999-01-01T00:00:00Z
+NA002,06,01,H2S-conc,air,,2024-03-21T03:00:00Z,9999-01-01T00:00:00Z
+NA002,07,01,direction,wind,,2024-03-21T03:00:00Z,9999-01-01T00:00:00Z
+NA002,07,02,speed,wind,,2024-03-21T03:00:00Z,9999-01-01T00:00:00Z
NA002,MC01,01,temperature,fumarole,,1973-11-27T00:00:00Z,9999-01-01T00:00:00Z
NM001,MC01,01,Al-conc,spring,,2010-01-01T00:00:00Z,9999-01-01T00:00:00Z
NM001,MC01,01,As-conc,spring,,2010-01-01T00:00:00Z,9999-01-01T00:00:00Z
@@ -1032,6 +1037,11 @@ TO003,08,01,temperature,ground,40 m south of enclosure,2022-06-22T03:00:00Z,9999
TO003,09,01,selfpotential,ground,20 m north relative to enclosure,2022-06-21T23:10:00Z,9999-01-01T00:00:00Z
TO003,10,01,selfpotential,ground,20 m south relative to enclosure,2022-06-21T23:10:00Z,9999-01-01T00:00:00Z
TO003,11,01,selfpotential,ground,40 m south relative to enclosure,2022-06-21T23:10:00Z,9999-01-01T00:00:00Z
+TO003,12,01,CO2-conc,air,,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+TO003,13,01,SO2-conc,air,,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+TO003,14,01,H2S-conc,air,,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+TO003,15,01,direction,wind,,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+TO003,15,02,speed,wind,,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
TO003,MC01,01,temperature,fumarole,,2012-11-09T00:00:00Z,9999-01-01T00:00:00Z
TO004,MC01,01,temperature,fumarole,,2013-11-01T00:00:00Z,9999-01-01T00:00:00Z
TO005,MC01,01,temperature,fumarole,,2012-11-09T00:00:00Z,9999-01-01T00:00:00Z
@@ -1747,93 +1757,93 @@ WI153,MC01,01,CO2-gasflux,ground,,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
WI153,MC01,01,temperature,ground,,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
WI154,MC01,01,CO2-gasflux,ground,,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
WI154,MC01,01,temperature,ground,,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI200,MC01,01,Al-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,As-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,B-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,Br-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,Ca-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,Cl-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,F-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,Fe-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,H2S-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,K-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,Li-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,Mg-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,NH3-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,NO3-N-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,Na-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,PO4-P-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,SO4-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,SiO2-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,d18O-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,d2H-conc,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
+WI200,MC01,01,Al-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,As-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,B-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,Br-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,Ca-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,Cl-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,F-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,Fe-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,H2S-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,K-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,Li-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,Mg-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,NH3-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,NO3-N-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,Na-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,PO4-P-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,SO4-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,SiO2-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,d18O-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,d2H-conc,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
WI200,MC01,01,height,lake,south east part of lake,2003-08-27T00:00:00Z,2019-11-29T00:00:00Z
-WI200,MC01,01,pH,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI200,MC01,01,temperature,lake,south east part of lake,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI210,MC01,01,temperature,fumarole,,2003-04-08T00:00:00Z,9999-01-01T00:00:00Z
+WI200,MC01,01,pH,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI200,MC01,01,temperature,lake,south east part of lake,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI210,MC01,01,temperature,fumarole,,2003-04-08T00:00:00Z,2019-12-04T00:00:00Z
WI211,MC01,01,temperature,fumarole,,2014-01-15T00:00:00Z,2018-07-18T00:00:00Z
-WI220,MC01,01,Al-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,As-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,B-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,Br-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,Ca-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,Cl-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,F-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,Fe-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,H2S-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,K-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,Li-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,Mg-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,NH3-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,Na-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,PO4-P-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,SO4-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,SiO2-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,d18O-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,d2H-conc,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,pH,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC01,01,temperature,stream,at beach,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,Al-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,As-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,B-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,Br-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,Ca-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,Cl-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,F-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,Fe-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,H2S-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,K-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,Li-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,Mg-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,NH3-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,NO3-N-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,Na-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,PO4-P-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,SO4-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,SiO2-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,d18O-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,d2H-conc,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,pH,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,01,temperature,stream,above confluence,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,Al-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,As-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,B-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,Br-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,Ca-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,Cl-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,F-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,Fe-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,K-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,Li-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,Mg-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,NH3-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,NO3-N-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,Na-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,PO4-P-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,SO4-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,SiO2-conc,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,pH,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,01,temperature,stream,below confluence,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
+WI220,MC01,01,Al-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,As-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,B-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,Br-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,Ca-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,Cl-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,F-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,Fe-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,H2S-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,K-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,Li-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,Mg-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,NH3-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,Na-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,PO4-P-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,SO4-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,SiO2-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,d18O-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,d2H-conc,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,pH,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC01,01,temperature,stream,at beach,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC02,01,Al-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,As-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,B-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,Br-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,Ca-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,Cl-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,F-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,Fe-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,H2S-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,K-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,Li-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,Mg-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,NH3-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,NO3-N-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,Na-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,PO4-P-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,SO4-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,SiO2-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,d18O-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,d2H-conc,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,pH,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC02,01,temperature,stream,above confluence,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC03,01,Al-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,As-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,B-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,Br-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,Ca-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,Cl-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,F-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,Fe-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,K-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,Li-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,Mg-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,NH3-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,NO3-N-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,Na-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,PO4-P-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,SO4-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,SiO2-conc,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,pH,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
+WI220,MC03,01,temperature,stream,below confluence,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
WI221,MC01,01,Al-conc,spring,original black pot,1995-11-15T00:00:00Z,2007-07-25T00:00:00Z
WI221,MC01,01,As-conc,spring,original black pot,1995-11-15T00:00:00Z,2007-07-25T00:00:00Z
WI221,MC01,01,B-conc,spring,original black pot,1995-11-15T00:00:00Z,2007-07-25T00:00:00Z
@@ -1878,50 +1888,50 @@ WI221,MC02,01,d18O-conc,spring,little black pot,2005-03-08T00:00:00Z,2013-07-09T
WI221,MC02,01,d2H-conc,spring,little black pot,2005-03-08T00:00:00Z,2013-07-09T00:00:00Z
WI221,MC02,01,pH,spring,little black pot,2005-03-08T00:00:00Z,2013-07-09T00:00:00Z
WI221,MC02,01,temperature,spring,little black pot,2005-03-08T00:00:00Z,2013-07-09T00:00:00Z
-WI221,MC03,01,Al-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,As-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,B-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,Br-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,Ca-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,Cl-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,F-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,Fe-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,H2S-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,K-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,Li-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,Mg-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,NH3-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,NO3-N-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,Na-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,PO4-P-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,SO4-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,SiO2-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,d18O-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,d2H-conc,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,pH,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC03,01,temperature,spring,little black pot north,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,Al-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,As-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,B-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,Br-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,Ca-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,Cl-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,F-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,Fe-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,H2S-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,K-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,Li-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,Mg-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,NH3-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,NO3-N-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,Na-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,PO4-P-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,SO4-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,SiO2-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,d18O-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,d2H-conc,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
+WI221,MC03,01,Al-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,As-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,B-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,Br-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,Ca-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,Cl-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,F-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,Fe-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,H2S-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,K-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,Li-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,Mg-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,NH3-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,NO3-N-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,Na-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,PO4-P-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,SO4-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,SiO2-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,d18O-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,d2H-conc,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,pH,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC03,01,temperature,spring,little black pot north,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC04,01,Al-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,As-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,B-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,Br-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,Ca-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,Cl-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,F-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,Fe-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,H2S-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,K-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,Li-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,Mg-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,NH3-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,NO3-N-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,Na-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,PO4-P-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,SO4-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,SiO2-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,d18O-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
+WI221,MC04,01,d2H-conc,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
WI221,MC04,01,pH,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,01,temperature,spring,little black pot south,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
+WI221,MC04,01,temperature,spring,little black pot south,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
WI222,MC01,01,Al-conc,spring,,2004-09-17T00:00:00Z,2015-02-25T00:00:00Z
WI222,MC01,01,As-conc,spring,,2004-09-17T00:00:00Z,2015-02-25T00:00:00Z
WI222,MC01,01,B-conc,spring,,2004-09-17T00:00:00Z,2015-02-25T00:00:00Z
@@ -1944,28 +1954,28 @@ WI222,MC01,01,d18O-conc,spring,,2004-09-17T00:00:00Z,2015-02-25T00:00:00Z
WI222,MC01,01,d2H-conc,spring,,2004-09-17T00:00:00Z,2015-02-25T00:00:00Z
WI222,MC01,01,pH,spring,,2004-09-17T00:00:00Z,2015-02-25T00:00:00Z
WI222,MC01,01,temperature,spring,,2004-09-17T00:00:00Z,2015-02-25T00:00:00Z
-WI223,MC01,01,Al-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,As-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,B-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,Br-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,Ca-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,Cl-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,F-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,Fe-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,H2S-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,K-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,Li-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,Mg-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,NH3-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,NO3-N-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,Na-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,PO4-P-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,SO4-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,SiO2-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,d18O-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,d2H-conc,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,pH,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI223,MC01,01,temperature,spring,,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
+WI223,MC01,01,Al-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,As-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,B-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,Br-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,Ca-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,Cl-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,F-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,Fe-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,H2S-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,K-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,Li-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,Mg-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,NH3-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,NO3-N-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,Na-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,PO4-P-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,SO4-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,SiO2-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,d18O-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,d2H-conc,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,pH,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
+WI223,MC01,01,temperature,spring,,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
WI224,MC01,01,Al-conc,spring,,2005-11-08T00:00:00Z,2012-06-11T00:00:00Z
WI224,MC01,01,As-conc,spring,,2005-11-08T00:00:00Z,2012-06-11T00:00:00Z
WI224,MC01,01,B-conc,spring,,2005-11-08T00:00:00Z,2012-06-11T00:00:00Z
@@ -1988,94 +1998,94 @@ WI224,MC01,01,d18O-conc,spring,,2005-11-08T00:00:00Z,2012-06-11T00:00:00Z
WI224,MC01,01,d2H-conc,spring,,2005-11-08T00:00:00Z,2012-06-11T00:00:00Z
WI224,MC01,01,pH,spring,,2005-11-08T00:00:00Z,2012-06-11T00:00:00Z
WI224,MC01,01,temperature,spring,,2005-11-08T00:00:00Z,2012-06-11T00:00:00Z
-WI225,MC01,01,Al-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,As-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,B-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,Br-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,Ca-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,Cl-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,F-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,Fe-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,H2S-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,K-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,Li-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,Mg-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,NH3-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,NO3-N-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,Na-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,PO4-P-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,SO4-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,SiO2-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,d18O-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,d2H-conc,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,pH,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC01,01,temperature,spring,northwest pool,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,Al-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,As-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,B-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,Br-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,Ca-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,Cl-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,F-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,Fe-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,H2S-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,K-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,Li-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,Mg-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,NH3-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,Na-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,SO4-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,SiO2-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,d18O-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,d2H-conc,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,pH,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,01,temperature,spring,southeast pool,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,Al-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,As-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,B-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,Br-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,Ca-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,Cl-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,F-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,Fe-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,H2S-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,K-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,Li-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,Mg-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,NH3-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,NO3-N-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,Na-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,PO4-P-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,SO4-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,SiO2-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,d18O-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,d2H-conc,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,pH,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,01,temperature,stream,,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI227,02,01,temperature,fumarole,small feature west of pool,2019-04-10T01:40:00Z,9999-01-01T00:00:00Z
-WI227,03,01,temperature,fumarole,large feature next to pool,2019-06-17T23:40:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,Al-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,As-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,B-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,Br-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,Ca-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,Cl-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,F-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,Fe-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,H2S-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,K-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,Li-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,Mg-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,NH3-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,NO3-N-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,Na-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,PO4-P-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,SO4-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,SiO2-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,d18O-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,d2H-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,pH-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,01,temperature,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
+WI225,MC01,01,Al-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,As-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,B-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,Br-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,Ca-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,Cl-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,F-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,Fe-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,H2S-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,K-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,Li-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,Mg-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,NH3-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,NO3-N-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,Na-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,PO4-P-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,SO4-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,SiO2-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,d18O-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,d2H-conc,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,pH,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC01,01,temperature,spring,northwest pool,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC02,01,Al-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,As-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,B-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,Br-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,Ca-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,Cl-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,F-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,Fe-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,H2S-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,K-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,Li-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,Mg-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,NH3-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,Na-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,SO4-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,SiO2-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,d18O-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,d2H-conc,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,pH,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI225,MC02,01,temperature,spring,southeast pool,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI226,MC01,01,Al-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,As-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,B-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,Br-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,Ca-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,Cl-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,F-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,Fe-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,H2S-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,K-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,Li-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,Mg-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,NH3-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,NO3-N-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,Na-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,PO4-P-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,SO4-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,SiO2-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,d18O-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,d2H-conc,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,pH,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI226,MC01,01,temperature,stream,,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI227,02,01,temperature,fumarole,small feature west of pool,2019-04-10T01:40:00Z,2023-12-01T00:00:00Z
+WI227,03,01,temperature,fumarole,large feature next to pool,2019-06-17T23:40:00Z,2023-12-01T00:00:00Z
+WI227,MC01,01,Al-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,As-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,B-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,Br-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,Ca-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,Cl-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,F-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,Fe-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,H2S-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,K-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,Li-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,Mg-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,NH3-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,NO3-N-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,Na-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,PO4-P-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,SO4-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,SiO2-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,d18O-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,d2H-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,pH-conc,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
+WI227,MC01,01,temperature,spring,pool adjacent to fumarole,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
WI228,MC01,01,Al-conc,stream,,2017-06-29T00:00:00Z,2017-06-29T00:00:00Z
WI228,MC01,01,As-conc,stream,,2017-06-29T00:00:00Z,2017-06-29T00:00:00Z
WI228,MC01,01,B-conc,stream,,2017-06-29T00:00:00Z,2017-06-29T00:00:00Z
diff --git a/install/antennas.csv b/install/antennas.csv
index 9dcb2dcde..ea922131e 100644
--- a/install/antennas.csv
+++ b/install/antennas.csv
@@ -5,7 +5,7 @@ Make,Model,Serial,Mark,Height,North,East,Azimuth,Start Date,End Date
Leica Geosystems,LEIAT504,324,DUNT,0,0,0,0,1999-09-23T00:00:03Z,9999-01-01T00:00:00Z
Leica Geosystems,LEIAT504,332,WGTT,0,0,0,0,1999-12-14T00:00:00Z,2000-06-29T02:59:59Z
Leica Geosystems,LEIAT504,332,TAKL,0,0,0,0,2001-07-11T00:00:00Z,2007-07-05T03:44:00Z
-Leica Geosystems,LEIAT504,333,WGTT,0,0,0,0,2000-06-29T03:00:01Z,2000-08-17T23:59:59Z
+Leica Geosystems,LEIAT504,333,WGTT,0,0,0,0,2000-06-29T03:00:00Z,2000-08-17T23:59:59Z
Leica Geosystems,LEIAT504,333,WGTT,0.0002,0,0,0,2000-08-18T00:00:05Z,9999-01-01T00:00:00Z
Leica Geosystems,LEIAT504,405,LYTT,0.001,0,0,0,1999-11-15T00:00:03Z,9999-01-01T00:00:00Z
Thales,ASH700936B_M,11753,WGTN,0.0017,0,0,0,1996-05-23T00:00:00Z,1999-11-10T05:43:00Z
@@ -265,7 +265,7 @@ Trimble Navigation Ltd.,TRM57971.00,1441031406,ANAU,0.002,0,0,0,2010-10-18T23:35
Trimble Navigation Ltd.,TRM57971.00,1441031450,TAUP,0.055,0,0,0,2010-12-01T22:28:21Z,2020-01-14T23:03:03Z
Trimble Navigation Ltd.,TRM57971.00,1441031484,HIKB,0.055,0,0,0,2011-01-13T06:00:00Z,2019-11-20T01:43:43Z
Trimble Navigation Ltd.,TRM57971.00,1441038001,RAHI,0.002,0,0,0,2011-07-18T04:20:51Z,9999-01-01T00:00:00Z
-Trimble Navigation Ltd.,TRM57971.00,1441040082,RGWI,0.002,0,0,0,2012-06-08T00:01:01Z,9999-01-01T00:00:00Z
+Trimble Navigation Ltd.,TRM57971.00,1441040082,RGWI,0.002,0,0,0,2012-06-08T00:01:01Z,2023-12-01T00:00:00Z
Trimble Navigation Ltd.,TRM57971.00,1441040153,YALD,0.035,0,0,0,2014-09-16T21:00:01Z,9999-01-01T00:00:00Z
Trimble Navigation Ltd.,TRM57971.00,1441040240,LEYL,0.002,0,0,0,2011-09-05T22:34:23Z,9999-01-01T00:00:00Z
Trimble Navigation Ltd.,TRM57971.00,1441040251,PKNO,0.002,0,0,0,2011-02-04T00:00:01Z,9999-01-01T00:00:00Z
@@ -291,7 +291,7 @@ Trimble Navigation Ltd.,TRM57971.00,1441053350,TORY,0.055,0,0,0,2011-11-16T23:11
Trimble Navigation Ltd.,TRM57971.00,1441053397,RGMT,0.002,0,0,0,2011-05-13T02:15:00Z,9999-01-01T00:00:00Z
Trimble Navigation Ltd.,TRM57971.00,1441107280,HANA,0.002,0,0,0,2012-06-01T00:00:01Z,9999-01-01T00:00:00Z
Trimble Navigation Ltd.,TRM57971.00,1441112082,RGRR,0.002,0,0,0,2013-04-19T02:30:00Z,9999-01-01T00:00:00Z
-Trimble Navigation Ltd.,TRM57971.00,1441112085,RGWC,0.002,0,0,0,2014-01-29T01:57:08Z,9999-01-01T00:00:00Z
+Trimble Navigation Ltd.,TRM57971.00,1441112085,RGWC,0.002,0,0,0,2014-01-29T01:57:08Z,2023-12-01T00:00:00Z
Trimble Navigation Ltd.,TRM57971.00,1441112314,VGT2,0.927,0,0,0,2012-07-27T01:00:00Z,2012-08-06T11:50:00Z
Trimble Navigation Ltd.,TRM57971.00,1441112321,CLS6,0,0,0,0,2011-10-13T22:21:05Z,2016-08-28T20:00:00Z
Trimble Navigation Ltd.,TRM57971.00,1441112335,WHVR,0.002,0,0,0,2011-09-30T00:15:57Z,9999-01-01T00:00:00Z
diff --git a/install/channels.csv b/install/channels.csv
index 8ecc0573a..6d457b87d 100644
--- a/install/channels.csv
+++ b/install/channels.csv
@@ -85,4 +85,5 @@ Quanterra,Q730/4,Datalogger,,-10,datalogger_Quanterra_Q730_24bits_10s
Quanterra,Q730/4,Datalogger,,1,datalogger_Quanterra_Q730_24bits_1s
Quanterra,Q730/4,Datalogger,,40,datalogger_Quanterra_Q730_24bits_40sps
Quanterra,Q730/4,Datalogger,,100,datalogger_Quanterra_Q730_24bits_100sps
+SAIC,BPR Subsystem,Bottom Pressure Recorder,,-900,
SAIC,BPR Subsystem,Bottom Pressure Recorder,,-15,
diff --git a/install/components.csv b/install/components.csv
index afa5f51b7..c7200fd18 100644
--- a/install/components.csv
+++ b/install/components.csv
@@ -143,6 +143,7 @@ Nanometrics,Trillium Horizon TH120-1,Broadband Seismometer,2,,E,0,90,G,,sensor_N
Nanometrics,Trillium Horizon TH120-2,Broadband Seismometer,0,,Z,-90,0,G,,sensor_Nanometrics-Inc_Trillium-Horizon-TH120-2
Nanometrics,Trillium Horizon TH120-2,Broadband Seismometer,1,,N,0,0,G,,sensor_Nanometrics-Inc_Trillium-Horizon-TH120-2
Nanometrics,Trillium Horizon TH120-2,Broadband Seismometer,2,,E,0,90,G,,sensor_Nanometrics-Inc_Trillium-Horizon-TH120-2
+SAIC,BPR Subsystem,Bottom Pressure Recorder,0,,Z,0,0,G,-900,combined_SAIC_BPR-Subsystem_BPR-Subsystem_Z_900s
SAIC,BPR Subsystem,Bottom Pressure Recorder,0,,Z,0,0,G,-15,combined_SAIC_BPR-Subsystem_BPR-Subsystem_Z_15s
Sercel,L4C,Short Period Seismometer,0,,Z,-90,0,G,,sensor_Sercel_L4C
Sercel,L4C-3D,Short Period Seismometer,0,,Z,-90,0,G,,sensor_Sercel_L4C-3D
diff --git a/install/connections.csv b/install/connections.csv
index 6431ede75..b9ccada92 100644
--- a/install/connections.csv
+++ b/install/connections.csv
@@ -16,8 +16,8 @@ AKFZ,10,Atkinson Farm,,0,2023-03-21T02:06:00Z,9999-01-01T00:00:00Z
AKFZ,20,Atkinson Farm,,3,2023-03-21T02:06:00Z,9999-01-01T00:00:00Z
ALLC,10,"Allen Road, Pureora",Short Period,,2001-02-13T16:17:00Z,2001-07-07T18:55:00Z
ALRZ,10,Allen Road Cliffs,,,2007-11-07T02:00:00Z,9999-01-01T00:00:00Z
-ALS1R,01,Auckland Scenic Drive Waiatarua,,,2023-02-24T01:09:00Z,9999-01-01T00:00:00Z
-ALS1R,02,Auckland Scenic Drive Waiatarua,,,2023-02-24T01:09:00Z,9999-01-01T00:00:00Z
+ALS1R,01,Auckland Scenic Drive Waiatarua,,,2023-02-24T01:09:00Z,2024-02-25T13:50:01Z
+ALS1R,02,Auckland Scenic Drive Waiatarua,,,2023-02-24T01:09:00Z,2024-02-25T13:50:01Z
ALS2R,01,Auckland Rayner Road Piha,,,2023-02-23T03:59:00Z,9999-01-01T00:00:00Z
ALS2R,02,Auckland Rayner Road Piha,,,2023-02-23T03:59:00Z,9999-01-01T00:00:00Z
AMCZ,10,"Amberley, Maskells Rd",,,2012-06-26T23:00:01Z,9999-01-01T00:00:00Z
@@ -216,6 +216,17 @@ FOXKP,03,Fox Glacier Kea Point,,,2021-08-04T00:00:00Z,2023-12-25T03:51:00Z
FOXKP,04,Fox Glacier Kea Point,,,2021-11-24T00:00:00Z,2023-12-25T03:51:00Z
FOXKP,05,Fox Glacier Kea Point,,,2022-01-26T00:00:00Z,2023-12-25T03:51:00Z
FOXKP,06,Fox Glacier Kea Point,,,2023-02-08T01:00:00Z,2023-12-25T03:51:00Z
+FOXRB,01,Fox Glacier Rapanui Bluff,,,2021-11-24T00:00:00Z,9999-01-01T00:00:00Z
+FOXRB,03,Fox Glacier Rapanui Bluff,,,2021-11-24T00:00:00Z,9999-01-01T00:00:00Z
+FOXVF,01,Fox Glacier Victoria Falls,,,2021-11-24T00:00:00Z,9999-01-01T00:00:00Z
+FOXVF,03,Fox Glacier Victoria Falls,,,2021-11-24T00:00:00Z,9999-01-01T00:00:00Z
+FOXVF,04,Fox Glacier Victoria Falls,,,2021-11-24T00:00:00Z,9999-01-01T00:00:00Z
+FOXVF,05,Fox Glacier Victoria Falls,,,2022-02-23T00:00:00Z,9999-01-01T00:00:00Z
+FOXVF,06,Fox Glacier Victoria Falls,,,2023-02-09T03:39:59Z,9999-01-01T00:00:00Z
+FOXVV,01,Fox Glacier Valley View,,,2021-08-03T00:00:00Z,9999-01-01T00:00:00Z
+FOXVV,03,Fox Glacier Valley View,,,2021-08-03T00:00:00Z,9999-01-01T00:00:00Z
+FOXVV,04,Fox Glacier Valley View,,,2022-01-25T00:00:00Z,9999-01-01T00:00:00Z
+FOXVV,05,Fox Glacier Valley View,,,2022-01-25T00:00:00Z,9999-01-01T00:00:00Z
FOZ,10,The Sugar Loaf Quarry,,0,2004-10-13T00:00:00Z,2015-09-22T18:00:00Z
FOZ,11,The Sugar Loaf Quarry,,0,2015-09-23T05:30:00Z,9999-01-01T00:00:00Z
FOZ,20,The Sugar Loaf Quarry,,3,2004-10-13T00:00:02Z,2015-09-24T23:59:59Z
@@ -239,9 +250,9 @@ GISX,10,Patutahi,Portable,,2006-07-22T21:00:01Z,2006-08-17T05:00:00Z
GLAA,10,Gillespies Beach,Short Period,,1997-09-20T07:06:00Z,1997-10-28T02:47:00Z
GLET,10,Glencoe,Short Period,,1993-04-12T09:46:00Z,1993-04-25T09:39:00Z
GLKZ,10,Raoul Island Green Lake,Broadband,0,2009-05-19T00:00:00Z,9999-01-01T00:00:00Z
-GLKZ,40,Raoul Island Green Lake,,3,2009-05-19T00:00:00Z,2023-01-30T20:17:32Z
-GLKZ,80,Raoul Island Green Lake,,4,2009-05-18T00:00:01Z,2023-01-30T20:17:32Z
-GLKZ,81,Raoul Island Green Lake,,5,2009-05-18T00:00:01Z,2023-01-30T20:17:32Z
+GLKZ,40,Raoul Island Green Lake,Broadband,3,2009-05-19T00:00:00Z,2023-01-30T20:17:32Z
+GLKZ,80,Raoul Island Green Lake,Broadband,4,2009-05-18T00:00:01Z,2023-01-30T20:17:32Z
+GLKZ,81,Raoul Island Green Lake,Broadband,5,2009-05-18T00:00:01Z,2023-01-30T20:17:32Z
GLWS,21,Glynn Wye,Strong Motion,,2019-10-23T19:45:00Z,2020-07-23T20:19:00Z
GNSW,30,Old GNS Wairakei,,0,2006-08-31T00:00:02Z,2007-01-24T01:00:00Z
GNSW,31,Old GNS Wairakei,,1,2006-08-31T00:00:02Z,2007-01-24T01:00:00Z
@@ -571,6 +582,10 @@ MYRZ,10,Mayor Island,,,2006-02-13T00:00:01Z,9999-01-01T00:00:00Z
NA002,01,Ngauruhoe Outer Rim Fumarole,,,2021-05-06T04:00:00Z,9999-01-01T00:00:00Z
NA002,02,Ngauruhoe Outer Rim Fumarole,,,2021-05-06T04:00:00Z,9999-01-01T00:00:00Z
NA002,03,Ngauruhoe Outer Rim Fumarole,,,2021-05-06T04:00:00Z,9999-01-01T00:00:00Z
+NA002,04,Ngauruhoe Outer Rim Fumarole,,,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
+NA002,05,Ngauruhoe Outer Rim Fumarole,,,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
+NA002,06,Ngauruhoe Outer Rim Fumarole,,,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
+NA002,07,Ngauruhoe Outer Rim Fumarole,,,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
NAAF,10,Anchorage Arm,Short Period,,1993-08-14T23:24:00Z,1993-08-17T17:55:00Z
NADF,10,Anchorage Arm,Short Period,,1993-03-21T06:46:00Z,1993-06-19T15:05:00Z
NAPT,40,Port of Napier,,0,2007-09-26T00:00:00Z,9999-01-01T00:00:00Z
@@ -883,6 +898,10 @@ TO003,08,Upper Te Maari Fumarole 3,,,2022-06-22T03:00:00Z,9999-01-01T00:00:00Z
TO003,09,Upper Te Maari Fumarole 3,,,2022-06-21T23:10:00Z,9999-01-01T00:00:00Z
TO003,10,Upper Te Maari Fumarole 3,,,2022-06-21T23:10:00Z,9999-01-01T00:00:00Z
TO003,11,Upper Te Maari Fumarole 3,,,2022-06-21T23:10:00Z,9999-01-01T00:00:00Z
+TO003,12,Upper Te Maari Fumarole 3,,,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+TO003,13,Upper Te Maari Fumarole 3,,,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+TO003,14,Upper Te Maari Fumarole 3,,,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+TO003,15,Upper Te Maari Fumarole 3,,,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
TO006,01,Upper Te Maari Fumarole 6,,,2021-11-19T00:00:00Z,9999-01-01T00:00:00Z
TO006,02,Upper Te Maari Fumarole 6,,,2018-10-08T23:50:00Z,9999-01-01T00:00:00Z
TO006,03,Upper Te Maari Fumarole 6,,,2018-08-28T00:30:00Z,9999-01-01T00:00:00Z
@@ -1000,14 +1019,14 @@ WI12,10,White Island 12,Portable,,2011-06-13T00:01:02Z,2011-11-23T00:00:00Z
WI13,10,White Island 13,Portable,,2011-06-13T00:00:02Z,2018-05-19T00:00:00Z
WI14,10,White Island 14,Portable,,2011-06-13T00:00:02Z,2011-11-23T00:00:00Z
WI15,10,White Island 15,Portable,,2011-06-13T00:00:02Z,2011-11-23T00:00:00Z
-WI227,02,White Island Fumarole 13,,,2019-04-10T01:40:00Z,9999-01-01T00:00:00Z
-WI227,03,White Island Fumarole 13,,,2019-06-17T23:40:00Z,9999-01-01T00:00:00Z
+WI227,02,White Island Fumarole 13,,,2019-04-10T01:40:00Z,2023-12-01T00:00:00Z
+WI227,03,White Island Fumarole 13,,,2019-06-17T23:40:00Z,2023-12-01T00:00:00Z
WIAZ,10,Waiheke Station,,,2010-07-27T03:15:00Z,9999-01-01T00:00:00Z
WILA,10,Wilberforce,Short Period,,1994-06-21T21:27:00Z,1994-06-28T23:34:00Z
-WIZ,10,White Island - South Rim,,0,2006-09-19T00:00:01Z,9999-01-01T00:00:00Z
-WIZ,30,White Island - South Rim,,3,2006-09-19T00:00:01Z,9999-01-01T00:00:00Z
-WIZ,31,White Island - South Rim,,4,2015-01-22T00:00:00Z,9999-01-01T00:00:00Z
-WIZ,32,White Island - South Rim,,5,2015-01-22T00:00:00Z,9999-01-01T00:00:00Z
+WIZ,10,White Island - South Rim,,0,2006-09-19T00:00:01Z,2023-12-01T00:00:00Z
+WIZ,30,White Island - South Rim,,3,2006-09-19T00:00:01Z,2023-12-01T00:00:00Z
+WIZ,31,White Island - South Rim,,4,2015-01-22T00:00:00Z,2023-12-01T00:00:00Z
+WIZ,32,White Island - South Rim,,5,2015-01-22T00:00:00Z,2023-12-01T00:00:00Z
WKA,10,Wairakei A,Short Period,,1990-08-10T18:28:00Z,1990-08-19T01:52:00Z
WKB,10,Wairakei B,Short Period,,1990-08-13T10:46:00Z,1990-08-22T20:55:00Z
WKC,10,Wairakei C,Short Period,,1990-08-10T18:28:00Z,1990-08-22T20:55:00Z
@@ -1040,12 +1059,12 @@ WPVZ,10,Whakapapa,,,2003-12-10T11:00:02Z,2010-11-30T22:00:00Z
WQSZ,10,Whataroa DFDP2 Quarry,,,2014-06-23T00:00:05Z,9999-01-01T00:00:00Z
WRAV,10,Wairua,Short Period,,1995-01-13T10:42:00Z,1998-04-05T21:40:00Z
WROM,10,White Rock,Short Period,,1993-11-04T10:07:00Z,1994-03-06T14:25:00Z
-WSRZ,10,White Island - Summit,,0,2013-04-08T04:00:00Z,9999-01-01T00:00:00Z
-WSRZ,30,White Island - Summit,,3,2013-04-08T04:00:00Z,9999-01-01T00:00:00Z
+WSRZ,10,White Island - Summit,,0,2013-04-08T04:00:00Z,2023-12-01T00:00:00Z
+WSRZ,30,White Island - Summit,,3,2013-04-08T04:00:00Z,2023-12-01T00:00:00Z
WSRZ,31,White Island - Summit,,4,2014-11-20T02:00:00Z,2018-05-28T21:00:00Z
WSRZ,32,White Island - Summit,,5,2014-11-20T02:00:00Z,2018-05-28T21:00:00Z
-WSRZ,33,White Island - Summit,,4,2018-05-28T22:15:00Z,9999-01-01T00:00:00Z
-WSRZ,34,White Island - Summit,,5,2018-05-28T22:15:00Z,9999-01-01T00:00:00Z
+WSRZ,33,White Island - Summit,,4,2018-05-28T22:15:00Z,2023-12-01T00:00:00Z
+WSRZ,34,White Island - Summit,,5,2018-05-28T22:15:00Z,2023-12-01T00:00:00Z
WTA,10,Waitahora,Short Period,,1990-02-19T21:40:00Z,1990-05-17T20:29:00Z
WTAC,10,Waitaha,Short Period,,2001-01-12T08:37:00Z,2001-06-26T19:07:00Z
WTAZ,10,Waiatarua,,,2006-12-13T02:20:01Z,2022-05-17T01:32:00Z
diff --git a/install/dataloggers.csv b/install/dataloggers.csv
index 5ed5b20bc..dbf125ae3 100644
--- a/install/dataloggers.csv
+++ b/install/dataloggers.csv
@@ -1,7 +1,7 @@
Make,Model,Serial,Place,Role,Start Date,End Date
Campbell Scientific,CR6,03066,Lower Te Maari Fumarole 15,,2018-08-10T00:00:00Z,9999-01-01T00:00:00Z
Campbell Scientific,CR6,04108,Ruapehu Crater Lake Outlet,,2022-01-17T22:40:00Z,9999-01-01T00:00:00Z
-Campbell Scientific,CR6,04109,White Island Fumarole 13,,2018-09-13T01:30:00Z,9999-01-01T00:00:00Z
+Campbell Scientific,CR6,04109,White Island Fumarole 13,,2018-09-13T01:30:00Z,2023-12-01T00:00:00Z
Campbell Scientific,CR6,04110,Upper Te Maari Fumarole 6,,2018-08-28T00:00:00Z,9999-01-01T00:00:00Z
Campbell Scientific,CR6,04111,Fox Glacier Alpine Gardens,,2019-02-06T00:00:00Z,2021-05-05T20:50:01Z
Campbell Scientific,CR6,04114,Fox Glacier Alpine Gardens,,2021-05-05T22:09:59Z,2023-02-08T18:30:01Z
@@ -14,7 +14,7 @@ Campbell Scientific,CR6,11300,Fox Glacier Rapanui Bluff,,2021-08-03T00:00:00Z,99
Campbell Scientific,CR6,11303,Fox Glacier Valley View,,2021-08-03T00:00:00Z,9999-01-01T00:00:00Z
Campbell Scientific,CR6,11770,Auckland Rayner Road Piha,,2023-02-23T03:59:00Z,9999-01-01T00:00:00Z
Campbell Scientific,CR6,15365,Rotoma Soda Spring,,2021-03-17T22:20:00Z,2023-03-08T21:50:01Z
-Campbell Scientific,CR6,15366,Upper Te Maari Fumarole 3,,2021-05-27T00:00:00Z,9999-01-01T00:00:00Z
+Campbell Scientific,CR6,15366,Upper Te Maari Fumarole 3,,2021-05-27T00:00:00Z,2024-02-29T21:50:00Z
Campbell Scientific,CR6,15367,Ngauruhoe Outer Rim Fumarole,,2021-05-06T00:00:00Z,9999-01-01T00:00:00Z
Campbell Scientific,CR6,15368,Tongariro Upper Emerald,,2021-05-21T00:00:00Z,2023-03-08T00:00:00Z
Campbell Scientific,CR6,15369,Tongariro Lower Emerald Spring,,2021-05-07T00:00:00Z,2022-03-30T21:09:59Z
@@ -26,8 +26,9 @@ Campbell Scientific,CR6,17445,Raoul Island Green Lake,Envirosensor,2023-01-30T02
Campbell Scientific,CR6,20464,Fox Glacier Alpine Gardens,,2023-02-08T19:29:59Z,9999-01-01T00:00:00Z
Campbell Scientific,CR6,20467,Tongariro Upper Emerald,,2023-03-08T00:29:59Z,2023-11-29T22:19:59Z
Campbell Scientific,CR6,20468,Rotoma Soda Spring,,2023-03-09T00:09:59Z,9999-01-01T00:00:00Z
-Campbell Scientific,CR6,20469,Auckland Scenic Drive Waiatarua,,2023-02-24T01:09:00Z,9999-01-01T00:00:00Z
+Campbell Scientific,CR6,20469,Auckland Scenic Drive Waiatarua,,2023-02-24T01:09:00Z,2024-02-25T13:50:01Z
Campbell Scientific,CR6,20470,Tongariro Lower Emerald Spring,,2023-03-14T01:00:00Z,9999-01-01T00:00:00Z
+Campbell Scientific,CR6,20474,Upper Te Maari Fumarole 3,,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
Campbell Scientific,CR6,20475,Upper Tama Lake,,2023-07-24T00:09:59Z,9999-01-01T00:00:00Z
GNS Science,EARSS/16,204,Taranaki Emergency Management Office,EARSS Network,1993-12-14T23:51:00Z,2002-09-18T21:00:00Z
GNS Science,EARSS/16,207,Chateau Observatory,EARSS Network,1993-11-12T03:00:00Z,1998-06-11T09:00:00Z
@@ -524,6 +525,7 @@ Kinemetrics,Q330/3,2554,Rimuhau Hill,,2012-08-14T00:00:02Z,2023-08-02T21:50:00Z
Kinemetrics,Q330/3,2555,Castlepoint,,2009-09-08T00:00:01Z,2021-07-26T08:15:00Z
Kinemetrics,Q330/3,2558,Whatipu,,2010-07-15T00:00:02Z,2018-04-12T01:45:00Z
Kinemetrics,Q330/3,2559,Ngongotaha,,2011-10-26T00:00:01Z,2022-11-23T00:30:00Z
+Kinemetrics,Q330/3,2559,Apia Geomagnetic Observatory,,2023-08-17T10:52:01Z,9999-01-01T00:00:00Z
Kinemetrics,Q330/3,2563,Dunedin Tsunami,,2010-02-25T01:00:01Z,2021-05-25T23:43:00Z
Kinemetrics,Q330/3,2564,Korotiti Bay,,2010-05-09T00:00:01Z,2017-12-12T02:44:00Z
Kinemetrics,Q330/3,2564,Cape Kidnappers,,2018-02-28T21:20:00Z,2023-05-25T00:35:00Z
@@ -634,7 +636,7 @@ Kinemetrics,Q330/3,957,Holdsworth Station,,2007-02-22T23:30:01Z,2022-11-29T02:16
Kinemetrics,Q330/3,958,Hathaway Farm,,2007-03-22T00:00:02Z,2023-08-23T23:15:00Z
Kinemetrics,Q330/3,959,Te Maipa,,2007-02-23T21:15:00Z,2008-03-27T22:00:00Z
Kinemetrics,Q330/3,959,Rimuhau Hill,,2009-06-08T23:00:01Z,2010-03-12T00:00:00Z
-Kinemetrics,Q330/3,959,Maungataniwha,,2011-10-20T00:00:01Z,9999-01-01T00:00:00Z
+Kinemetrics,Q330/3,959,Maungataniwha,,2011-10-20T00:00:01Z,2023-10-31T00:51:00Z
Kinemetrics,Q330/3,960,Carnagh Station,,2007-08-04T00:00:01Z,2023-10-05T21:04:00Z
Kinemetrics,Q330/3,961,The Paps,,2006-05-07T02:23:54Z,2007-05-02T22:00:00Z
Kinemetrics,Q330/3,961,Allen Road Cliffs,,2007-11-07T01:00:01Z,2018-11-28T23:40:00Z
@@ -650,7 +652,7 @@ Kinemetrics,Q330/6,2250,Waikawa Valley,,2007-11-29T00:13:05Z,2017-05-22T06:17:00
Kinemetrics,Q330/6,2257,Tahuroa Road,,2008-12-04T01:50:01Z,2023-05-09T23:07:00Z
Kinemetrics,Q330/6,2260,"Highcliff Hill, Dunedin",,2008-06-26T03:30:01Z,2017-06-26T02:00:00Z
Kinemetrics,Q330/6,2266,Makara Bunker,Test 2,2008-04-21T22:00:01Z,2008-08-28T02:00:00Z
-Kinemetrics,Q330/6,2266,Raoul Island Green Lake,,2009-05-18T00:00:01Z,2016-09-17T13:00:00Z
+Kinemetrics,Q330/6,2266,Raoul Island Green Lake,Broadband,2009-05-18T00:00:01Z,2016-09-17T13:00:00Z
Kinemetrics,Q330/6,2567,MRP Kawerau Central Site KQ01,,2008-06-04T00:00:01Z,2017-05-04T02:00:00Z
Kinemetrics,Q330/6,2808,MRP Kawerau North Site KQ05,,2008-09-04T20:00:02Z,2017-05-04T02:00:00Z
Kinemetrics,Q330/6,2833,MRP Kawerau South Site KQ02,,2008-06-12T00:00:01Z,2017-05-04T02:00:00Z
@@ -676,7 +678,7 @@ Kinemetrics,Q330/6,3395,Puysegur Point,,2009-07-25T00:30:01Z,2017-01-19T21:20:00
Kinemetrics,Q330/6,3395,Whataroa River,,2020-06-19T00:00:00Z,2021-11-03T02:58:00Z
Kinemetrics,Q330/6,3396,Sanderson Farm,,2010-05-01T00:00:02Z,2017-05-30T17:00:00Z
Kinemetrics,Q330/6,3397,Tory Channel,,2011-03-25T00:00:01Z,2023-06-15T23:54:00Z
-Kinemetrics,Q330/6,3781,Apia Geomagnetic Observatory,,2021-06-17T00:00:00Z,9999-01-01T00:00:00Z
+Kinemetrics,Q330/6,3781,Apia Geomagnetic Observatory,,2021-06-17T00:00:00Z,2023-08-17T10:52:00Z
Kinemetrics,Q330/6,379,Earnscleugh,,2004-11-01T00:00:00Z,2005-09-22T23:59:30Z
Kinemetrics,Q330/6,379,Kereru,,2008-04-28T00:00:01Z,2008-05-17T04:00:00Z
Kinemetrics,Q330/6,379,Tolley Road,,2009-05-06T20:00:01Z,2019-01-28T02:30:00Z
@@ -780,7 +782,7 @@ Kinemetrics,Q330S/6,5572,Kapiti Island,,2018-11-13T02:25:00Z,9999-01-01T00:00:00
Kinemetrics,Q330S/6,5573,Tinakori Hill,,2014-08-25T00:00:01Z,2015-03-24T00:05:00Z
Kinemetrics,Q330S/6,5573,Breaker Bay Cliff,,2015-03-24T00:05:01Z,2016-03-09T21:00:05Z
Kinemetrics,Q330S/6,5573,Palmer Road,,2022-02-09T19:54:00Z,9999-01-01T00:00:00Z
-Kinemetrics,Q330S/6,5574,White Island - South Rim,,2014-07-04T00:00:01Z,9999-01-01T00:00:00Z
+Kinemetrics,Q330S/6,5574,White Island - South Rim,,2014-07-04T00:00:01Z,2023-12-01T00:00:00Z
Kinemetrics,Q330S/6,5575,Owhiro Bay,,2014-11-03T00:00:01Z,2015-10-26T00:00:01Z
Kinemetrics,Q330S/6,5575,Kowhai Park,,2015-10-26T00:00:02Z,2016-08-16T00:00:01Z
Kinemetrics,Q330S/6,5577,North Egmont Visitor Centre,,2013-12-05T03:00:01Z,2019-11-10T08:41:00Z
@@ -789,7 +791,7 @@ Kinemetrics,Q330S/6,5579,Clarence River Middle Hill,,2016-11-15T05:20:01Z,2023-0
Kinemetrics,Q330S/6,5699,Lichenstein Road,,2018-11-13T05:00:00Z,9999-01-01T00:00:00Z
Kinemetrics,Q330S/6,5856,Pakihiroa,,2016-09-04T19:25:01Z,2018-11-14T06:25:00Z
Kinemetrics,Q330S/6,5856,Pukenui,,2018-12-05T00:00:00Z,9999-01-01T00:00:00Z
-Kinemetrics,Q330S/6,5857,Waikawa Valley,,2017-05-22T06:17:01Z,9999-01-01T00:00:00Z
+Kinemetrics,Q330S/6,5857,Waikawa Valley,,2017-05-22T06:17:01Z,2024-02-18T23:03:00Z
Kinemetrics,Q330S/6,5858,Waiomatatini Station,,2016-09-04T06:25:01Z,9999-01-01T00:00:00Z
Kinemetrics,Q330S/6,5859,Moikau Station,,2018-07-23T04:08:00Z,9999-01-01T00:00:00Z
Kinemetrics,Q330S/6,5860,Sanderson Farm,,2017-05-30T17:00:01Z,2021-03-24T03:05:00Z
@@ -803,10 +805,10 @@ Kinemetrics,Q330S/6,6051,Tuamarina,,2016-12-07T00:00:01Z,2022-09-01T02:50:00Z
Kinemetrics,Q330S/6,6052,Raoul Island Met Station,,2016-09-17T13:00:01Z,2020-11-10T03:45:00Z
Kinemetrics,Q330S/6,6053,Whangaehu Hut,,2019-01-09T01:00:00Z,2021-10-14T21:46:00Z
Kinemetrics,Q330S/6,6054,Milford Sound,,2017-05-23T04:15:01Z,9999-01-01T00:00:00Z
-Kinemetrics,Q330S/6,6055,White Island - Summit,,2017-02-27T00:10:01Z,9999-01-01T00:00:00Z
+Kinemetrics,Q330S/6,6055,White Island - Summit,,2017-02-27T00:10:01Z,2023-12-01T00:00:00Z
Kinemetrics,Q330S/6,6056,Pakihiroa,,2018-11-15T00:20:00Z,2020-08-31T13:19:00Z
Kinemetrics,Q330S/6,6056,Sanderson Farm,,2021-03-25T21:20:00Z,2023-08-24T22:06:00Z
-Kinemetrics,Q330S/6,6057,Raoul Island Green Lake,,2016-09-17T13:00:01Z,2021-10-05T15:13:00Z
+Kinemetrics,Q330S/6,6057,Raoul Island Green Lake,Broadband,2016-09-17T13:00:01Z,2021-10-05T15:13:00Z
Kinemetrics,Q330S/6,6058,Wahianoa,,2017-05-30T11:40:01Z,9999-01-01T00:00:00Z
Kinemetrics,Q330S/6,6059,West Tongariro,,2022-11-01T22:06:00Z,9999-01-01T00:00:00Z
Kinemetrics,Q330S/6,6060,Turoa Top of Giant,,2017-09-11T23:55:01Z,9999-01-01T00:00:00Z
@@ -831,7 +833,7 @@ Kinemetrics,Q330S/6,6140,Waitaha Valley,,2018-07-08T23:30:00Z,9999-01-01T00:00:0
Kinemetrics,Q330S/6,6141,Pawanui,,2016-07-22T00:30:01Z,2023-02-23T10:37:00Z
Kinemetrics,Q330S/6,6142,Moumoukai,,2018-07-05T01:00:00Z,2022-12-07T20:33:00Z
Kinemetrics,Q330S/6,6142,Kawakawa Station,,2023-04-14T00:45:00Z,9999-01-01T00:00:00Z
-Kinemetrics,Q330S/6,6143,Port of Tauranga,,2019-12-05T22:32:01Z,9999-01-01T00:00:00Z
+Kinemetrics,Q330S/6,6143,Port of Tauranga,,2019-12-05T22:32:01Z,2024-03-20T22:20:00Z
Kinemetrics,Q330S/6,6144,Whataroa Gaunt Creek,,2018-10-15T00:10:00Z,2022-02-02T09:20:00Z
Kinemetrics,Q330S/6,6664,Tintock,,2018-10-16T23:40:00Z,9999-01-01T00:00:00Z
Kinemetrics,Q330S/6,6665,Okepuha Station,,2018-09-25T22:25:00Z,9999-01-01T00:00:00Z
@@ -851,7 +853,7 @@ Kinemetrics,Q330S/6,6721,Raukumara Range,,2018-11-14T21:45:00Z,9999-01-01T00:00:
Kinemetrics,Q330S/6,6839,Pukeiti Hill,,2019-05-23T21:15:00Z,2022-09-27T22:34:00Z
Kinemetrics,Q330S/6,6840,Old Kaimai Road,,2019-01-23T03:30:00Z,9999-01-01T00:00:00Z
Kinemetrics,Q330S/6,6841,Mount Morrison,,2018-12-10T21:15:00Z,9999-01-01T00:00:00Z
-Kinemetrics,Q330S/6,6842,North Egmont Visitor Centre,,2019-11-14T00:25:00Z,9999-01-01T00:00:00Z
+Kinemetrics,Q330S/6,6842,North Egmont Visitor Centre,,2019-11-14T00:25:00Z,2023-03-19T06:29:00Z
Kinemetrics,Q330S/6,6843,Utuhina,,2018-11-29T06:55:00Z,9999-01-01T00:00:00Z
Kinemetrics,Q330S/6,6844,Karaka Road Borehole,,2018-12-06T03:00:01Z,2020-07-31T00:47:00Z
Kinemetrics,Q330S/6,6845,Galatos Road - Hughes Farm,,2019-01-22T22:55:00Z,9999-01-01T00:00:00Z
@@ -895,6 +897,9 @@ Nanometrics,Centaur CTR4-6S,10233,Lake Taylor Station,,2023-05-22T03:13:00Z,9999
Nanometrics,Centaur CTR4-6S,10234,Waipu Caves,,2023-05-30T22:13:00Z,9999-01-01T00:00:00Z
Nanometrics,Centaur CTR4-6S,10235,Horomatangi Reefs,,2023-05-25T16:19:00Z,9999-01-01T00:00:00Z
Nanometrics,Centaur CTR4-6S,10236,Tauhara South,,2023-09-20T03:08:00Z,9999-01-01T00:00:00Z
+Nanometrics,Centaur CTR4-6S,10840,Waikawa Valley,,2024-03-03T20:30:00Z,9999-01-01T00:00:00Z
+Nanometrics,Centaur CTR4-6S,10956,Maungataniwha,,2024-03-06T04:27:00Z,9999-01-01T00:00:00Z
+Nanometrics,Centaur CTR4-6S,10961,Port of Tauranga,,2024-03-20T23:16:00Z,9999-01-01T00:00:00Z
Nanometrics,Centaur CTR4-6S,7810,Mount Tarawera,,2023-03-06T23:19:00Z,9999-01-01T00:00:00Z
Nanometrics,Centaur CTR4-6S,7931,Kaipara Flats,,2023-03-17T03:00:00Z,9999-01-01T00:00:00Z
Nanometrics,Centaur CTR4-6S,7932,Black Stump Farm,,2021-10-20T19:55:00Z,9999-01-01T00:00:00Z
@@ -1015,6 +1020,7 @@ Nanometrics,Centaur CTR4-6S,9894,"Amberley, Maskells Rd",,2023-06-27T00:27:00Z,9
Nanometrics,Centaur CTR4-6S,9895,Kahuranaki,,2023-07-19T21:31:00Z,9999-01-01T00:00:00Z
Nanometrics,Centaur CTR4-6S,9899,Kereta Bay,,2023-05-10T04:05:00Z,9999-01-01T00:00:00Z
Nanometrics,Centaur CTR4-6S,9901,Rawiri Station,,2023-08-07T03:55:00Z,9999-01-01T00:00:00Z
+Nanometrics,Centaur CTR4-6S,9902,North Egmont Visitor Centre,,2024-02-28T00:10:00Z,9999-01-01T00:00:00Z
Nanometrics,Centaur CTR4-6S,9903,Pawanui,,2023-03-01T04:03:00Z,9999-01-01T00:00:00Z
Nanometrics,Centaur CTR4-6S,9904,Waihua,,2023-09-14T04:26:00Z,9999-01-01T00:00:00Z
Nanometrics,Centaur CTR4-6S,9906,Waiheke Station,,2023-10-03T01:38:00Z,9999-01-01T00:00:00Z
diff --git a/install/doases.csv b/install/doases.csv
index f304c4422..c517c4f15 100644
--- a/install/doases.csv
+++ b/install/doases.csv
@@ -1,6 +1,7 @@
Make,Model,Serial,Mount,View,Dip,Azimuth,Height,North,East,Start Date,End Date
-Avaspec CompactLine,Avaspec-Mini2048CL,2002127M1,TOD01,01,-60,250,0,0,0,2021-07-29T02:30:00Z,9999-01-01T00:00:00Z
+Avaspec CompactLine,Avaspec-Mini2048CL,2002127M1,TOD01,01,-60,250,0,0,0,2021-07-29T02:30:00Z,2024-02-04T08:00:00Z
Avaspec CompactLine,Avaspec-Mini2048CL,2002125M1,TOD02,01,-60,169,0,0,0,2021-07-29T01:00:00Z,9999-01-01T00:00:00Z
Avaspec CompactLine,Avaspec-Mini2048CL,2002128M1,RUD01,01,-60,266,0,0,0,2022-05-05T05:13:00Z,9999-01-01T00:00:00Z
Avaspec CompactLine,Avaspec-Mini2048CL,2002126M1,RUD02,01,-60,172,0,0,0,2022-05-06T00:00:00Z,9999-01-01T00:00:00Z
Avaspec CompactLine,Avaspec-Mini2048CL,2002124M1,RUD03,01,-60,51,0,0,0,2023-06-28T03:30:00Z,9999-01-01T00:00:00Z
+Avaspec CompactLine,Avaspec-Mini2048CL,2002127M1,RUD04,01,-60,330,0,0,0,2024-02-07T23:00:00Z,9999-01-01T00:00:00Z
diff --git a/install/firmware.csv b/install/firmware.csv
index ed81c4721..48661bd4b 100644
--- a/install/firmware.csv
+++ b/install/firmware.csv
@@ -12,7 +12,8 @@ Campbell Scientific,CR6,04111,CR6.Std.11.01,2021-11-17T14:10:00Z,9999-01-01T00:0
Campbell Scientific,CR6,04112,CR6.Std.xx.xx,1901-01-01T00:00:00Z,9999-01-01T00:00:00Z,
Campbell Scientific,CR6,04114,CR6.Std.11.01,2021-10-14T00:00:00Z,9999-01-01T00:00:00Z,
Campbell Scientific,CR6,04115,CR6.Std.04,2020-10-24T00:00:00Z,2022-01-26T23:59:00Z,
-Campbell Scientific,CR6,04115,CR6.Std.11.01,2022-01-27T00:00:00Z,9999-01-01T00:00:00Z,
+Campbell Scientific,CR6,04115,CR6.Std.11.01,2022-01-27T00:00:00Z,2023-11-08T23:59:00Z,
+Campbell Scientific,CR6,04115,CR6.Std.12.02,2023-11-09T00:00:00Z,9999-01-01T00:00:00Z,
Campbell Scientific,CR6,04116,CR6.Std.04,2017-12-05T00:00:00Z,2021-11-04T23:59:00Z,
Campbell Scientific,CR6,04116,CR6.Std.11.01,2021-11-05T00:00:00Z,9999-01-01T00:00:00Z,
Campbell Scientific,CR6,04117,CR6.Std.04,2019-03-12T00:00:00Z,2022-03-30T23:59:00Z,
@@ -20,13 +21,15 @@ Campbell Scientific,CR6,04117,CR6.Std.11.01,2022-04-01T00:00:00Z,2022-09-01T23:5
Campbell Scientific,CR6,04117,CR6.Std.11.02,2022-09-02T00:00:00Z,2023-12-13T01:36:59Z,
Campbell Scientific,CR6,04117,CR6.Std.12.02,2023-12-13T01:37:00Z,9999-01-01T00:00:00Z,
Campbell Scientific,CR6,11300,CR6.Std.11.01,2021-11-21T00:00:00Z,9999-01-01T00:00:00Z,
-Campbell Scientific,CR6,11301,CR6.Std.09.02,2021-07-01T00:00:00Z,9999-01-01T00:00:00Z,
+Campbell Scientific,CR6,11301,CR6.Std.09.02,2021-07-01T00:00:00Z,2023-11-09T23:59:00Z,
+Campbell Scientific,CR6,11301,CR6.Std.12.02,2023-11-10T00:00:00Z,9999-01-01T00:00:00Z,
Campbell Scientific,CR6,11303,CR6.Std.11.01,2021-10-06T00:00:00Z,9999-01-01T00:00:00Z,
Campbell Scientific,CR6,11770,CR6.Std.12.01,2023-02-23T03:59:00Z,9999-01-01T00:00:00Z,
Campbell Scientific,CR6,15365,CR6.Std.10.02,2021-03-18T00:00:00Z,9999-01-01T00:00:00Z,
Campbell Scientific,CR6,15366,CR6.Std.10.02,2021-05-05T00:00:00Z,9999-01-01T00:00:00Z,
Campbell Scientific,CR6,15367,CR6.Std.10.02,2021-05-06T00:00:00Z,2022-01-18T23:59:00Z,
-Campbell Scientific,CR6,15367,CR6.Std.11.01,2022-01-19T00:00:00Z,9999-01-01T00:00:00Z,
+Campbell Scientific,CR6,15367,CR6.Std.11.01,2022-01-19T00:00:00Z,2024-03-21T02:59:00Z,
+Campbell Scientific,CR6,15367,CR6.Std.12.02,2024-03-21T03:00:00Z,9999-01-01T00:00:00Z,
Campbell Scientific,CR6,15368,CR6.Std.10.02,2021-05-21T00:00:00Z,2022-01-18T23:59:00Z,
Campbell Scientific,CR6,15368,CR6.Std.11.01,2022-01-19T00:00:00Z,9999-01-01T00:00:00Z,
Campbell Scientific,CR6,15369,CR6.Std.10.02,2021-05-07T00:00:00Z,2022-03-30T23:59:00Z,
@@ -42,6 +45,7 @@ Campbell Scientific,CR6,20467,CR6.Std.12.00,2023-03-08T00:29:59Z,9999-01-01T00:0
Campbell Scientific,CR6,20468,CR6.Std.12.00,2023-03-08T23:00:00Z,9999-01-01T00:00:00Z,
Campbell Scientific,CR6,20469,CR6.Std.12.01,2023-02-24T01:09:00Z,9999-01-01T00:00:00Z,
Campbell Scientific,CR6,20470,CR6.Std.12.00,2023-03-14T01:00:00Z,9999-01-01T00:00:00Z,
+Campbell Scientific,CR6,20474,CR6.Std.12.02,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z,
Campbell Scientific,CR6,20475,CR6.Std.12.01,2023-07-24T00:09:59Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,CUSP3D,42007,Cusp3D+r 400.74.1,2019-08-29T00:00:00Z,2021-06-10T04:59:59Z,Fix GPS timing 1 sec
Canterbury Seismic Instruments,CUSP3D,42007,Cusp3D+r 400.74.1 (GPS18X4.40),2021-06-10T05:00:00Z,9999-01-01T00:00:00Z,Fix GPS week number rollover
@@ -73,10 +77,10 @@ Canterbury Seismic Instruments,CUSP3D,42025,Cusp3D+r 400.74.1,2019-08-16T00:00:0
Canterbury Seismic Instruments,CUSP3D,42026,Cusp3D+r 400.74.1,2019-08-16T00:00:00Z,9999-01-01T00:00:00Z,Fix GPS timing 1 sec
Canterbury Seismic Instruments,CUSP3D,42027,Cusp3D+r 400.74.1,2019-08-16T00:00:00Z,2023-10-19T19:50:00Z,Fix GPS timing 1 sec
Canterbury Seismic Instruments,CUSP3D,42028,Cusp3D+r 400.74.1,2019-08-16T00:00:00Z,2021-04-27T22:59:59Z,Fix GPS timing 1 sec
-Canterbury Seismic Instruments,CUSP3D,42028,Cusp3D+r 400.74.1 (GPS18X4.40),2021-04-27T23:00:00Z,9999-01-01T00:00:00Z,Fix GPS week number rollover
+Canterbury Seismic Instruments,CUSP3D,42028,Cusp3D+r 400.74.1 (GPS18X4.40),2021-04-27T23:00:00Z,2024-02-28T21:03:00Z,Fix GPS week number rollover
Canterbury Seismic Instruments,CUSP3D,42029,Cusp3D+r 400.74.1,2019-08-16T00:00:00Z,9999-01-01T00:00:00Z,Fix GPS timing 1 sec
Canterbury Seismic Instruments,CUSP3D,42031,Cusp3D+r 400.74.1,2019-08-16T00:00:00Z,2021-02-24T21:59:59Z,Fix GPS timing 1 sec
-Canterbury Seismic Instruments,CUSP3D,42031,Cusp3D+r 400.74.1 (GPS18X4.40),2021-02-24T22:00:00Z,9999-01-01T00:00:00Z,Fix GPS week number rollover
+Canterbury Seismic Instruments,CUSP3D,42031,Cusp3D+r 400.74.1 (GPS18X4.40),2021-02-24T22:00:00Z,2024-02-29T00:45:00Z,Fix GPS week number rollover
Canterbury Seismic Instruments,CUSP3D,42032,Cusp3D+r 400.74.1,2019-08-30T00:00:00Z,2021-05-18T23:59:59Z,Fix GPS timing 1 sec
Canterbury Seismic Instruments,CUSP3D,42032,Cusp3D+r 400.74.1 (GPS18X4.40),2021-05-19T00:00:00Z,9999-01-01T00:00:00Z,Fix GPS week number rollover
Canterbury Seismic Instruments,CUSP3D,42033,Cusp3D+r 400.74.1,2019-08-30T00:00:00Z,9999-01-01T00:00:00Z,Fix GPS timing 1 sec
@@ -286,11 +290,11 @@ Canterbury Seismic Instruments,CUSP3D,42293,Cusp3D+r 400.74.1,2019-08-16T00:00:0
Canterbury Seismic Instruments,CUSP3D,42293,Cusp3D+r 400.74.1 (GPS18X4.40),2021-05-12T23:15:00Z,9999-01-01T00:00:00Z,Fix GPS week number rollover
Canterbury Seismic Instruments,CUSP3D,42294,Cusp3D+r 400.74.1,2019-08-29T00:00:00Z,9999-01-01T00:00:00Z,Fix GPS timing 1 sec
Canterbury Seismic Instruments,CUSP3D,42295,Cusp3D+r 400.74.1,2019-08-30T00:00:00Z,9999-01-01T00:00:00Z,Fix GPS timing 1 sec
-Canterbury Seismic Instruments,EQR120,46491,m001.03.08,2021-05-06T21:46:00Z,9999-01-01T00:00:00Z,
+Canterbury Seismic Instruments,EQR120,46491,m001.03.08,2021-05-06T21:46:00Z,2023-06-15T21:28:00Z,
Canterbury Seismic Instruments,EQR120,46492,m001.03.06,2021-02-08T21:52:00Z,2021-04-13T03:45:17Z,
Canterbury Seismic Instruments,EQR120,46492,m001.03.08,2021-04-13T03:45:18Z,2023-10-18T00:37:00Z,
Canterbury Seismic Instruments,EQR120,46493,m001.03.06,2021-04-01T02:34:00Z,2021-04-13T21:05:49Z,
-Canterbury Seismic Instruments,EQR120,46493,m001.03.08,2021-04-13T21:05:50Z,9999-01-01T00:00:00Z,
+Canterbury Seismic Instruments,EQR120,46493,m001.03.08,2021-04-13T21:05:50Z,2024-02-29T20:53:00Z,
Canterbury Seismic Instruments,EQR120,46494,m001.03.06,2021-02-25T23:48:00Z,2021-04-13T21:07:22Z,
Canterbury Seismic Instruments,EQR120,46494,m001.03.08,2021-04-13T21:07:23Z,2021-05-06T21:40:00Z,
Canterbury Seismic Instruments,EQR120,46494,2.3.2,2023-05-25T03:15:00Z,9999-01-01T00:00:00Z,
@@ -332,7 +336,7 @@ Canterbury Seismic Instruments,EQR120,46529,2.1.1,2022-10-17T22:04:00Z,2022-11-0
Canterbury Seismic Instruments,EQR120,46529,2.2.0,2022-11-02T00:00:00Z,2022-12-15T19:27:00Z,
Canterbury Seismic Instruments,EQR120,46529,2.2.2,2022-12-15T19:28:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46530,m001.03.08,2021-04-27T23:01:00Z,2023-10-30T22:06:00Z,
-Canterbury Seismic Instruments,EQR120,46531,m001.03.08,2021-04-27T01:41:00Z,9999-01-01T00:00:00Z,
+Canterbury Seismic Instruments,EQR120,46531,m001.03.08,2021-04-27T01:41:00Z,2024-02-29T22:03:30Z,
Canterbury Seismic Instruments,EQR120,46532,m001.03.08,2021-04-28T23:17:00Z,2023-11-28T20:26:00Z,
Canterbury Seismic Instruments,EQR120,46533,2.3.2,2023-11-29T00:41:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46534,2.3.2,2023-10-29T22:53:00Z,9999-01-01T00:00:00Z,
@@ -343,9 +347,10 @@ Canterbury Seismic Instruments,EQR120,46537,m001.03.08,2021-09-21T04:11:00Z,2023
Canterbury Seismic Instruments,EQR120,46538,2.3.2,2023-11-29T22:53:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46539,2.3.2,2023-10-31T22:17:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46540,m001.03.08,2022-03-31T22:39:00Z,2023-11-26T21:14:00Z,
-Canterbury Seismic Instruments,EQR120,46541,m001.03.08,2022-06-23T01:55:00Z,9999-01-01T00:00:00Z,
-Canterbury Seismic Instruments,EQR120,46542,m001.03.08,2022-06-23T01:55:00Z,9999-01-01T00:00:00Z,
-Canterbury Seismic Instruments,EQR120,46543,m001.03.08,2022-06-23T01:55:00Z,9999-01-01T00:00:00Z,
+Canterbury Seismic Instruments,EQR120,46541,m001.03.08,2022-06-23T01:55:00Z,2024-02-29T02:25:00Z,
+Canterbury Seismic Instruments,EQR120,46542,m001.03.08,2022-06-23T01:55:00Z,2024-02-29T02:57:00Z,
+Canterbury Seismic Instruments,EQR120,46543,m001.03.08,2022-06-23T01:55:00Z,2024-02-29T02:48:00Z,
+Canterbury Seismic Instruments,EQR120,46571,2.3.2,2024-02-29T02:42:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46594,2.2.0,2023-02-10T01:10:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46595,2.2.0,2023-01-12T23:45:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46596,2.2.0,2023-01-13T01:55:00Z,9999-01-01T00:00:00Z,
@@ -358,6 +363,7 @@ Canterbury Seismic Instruments,EQR120,46603,2.3.2,2023-05-25T03:15:00Z,9999-01-0
Canterbury Seismic Instruments,EQR120,46604,2.3.2,2023-05-25T03:15:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46605,2.3.2,2023-05-25T03:15:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46607,2.3.2,2023-05-25T03:15:00Z,9999-01-01T00:00:00Z,
+Canterbury Seismic Instruments,EQR120,46608,2.3.2,2024-02-29T03:06:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46609,2.3.2,2023-05-25T03:15:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46610,2.3.2,2023-12-13T20:44:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46611,2.3.2,2023-05-25T03:15:00Z,9999-01-01T00:00:00Z,
@@ -367,6 +373,7 @@ Canterbury Seismic Instruments,EQR120,46614,2.3.2,2023-05-25T03:15:00Z,9999-01-0
Canterbury Seismic Instruments,EQR120,46615,2.3.2,2023-05-25T03:15:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46617,2.3.2,2023-07-10T23:10:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46618,2.3.2,2023-06-30T03:08:00Z,9999-01-01T00:00:00Z,
+Canterbury Seismic Instruments,EQR120,46619,2.3.2,2024-02-29T02:57:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46621,2.2.2,2023-02-01T01:21:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46622,2.3.2,2023-07-03T23:29:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46623,2.3.2,2023-07-03T23:29:00Z,9999-01-01T00:00:00Z,
@@ -374,12 +381,15 @@ Canterbury Seismic Instruments,EQR120,46624,2.3.2,2023-07-03T23:29:00Z,9999-01-0
Canterbury Seismic Instruments,EQR120,46625,2.2.2,2023-02-20T23:14:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46626,2.3.2,2023-11-01T01:07:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46627,2.3.2,2023-11-15T01:13:00Z,9999-01-01T00:00:00Z,
+Canterbury Seismic Instruments,EQR120,46628,2.3.2,2024-02-29T22:04:20Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46629,2.3.2,2023-10-18T22:07:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46631,2.2.0,2022-12-01T19:48:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46647,2.3.2,2023-10-31T02:03:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46648,2.3.2,2023-10-30T23:19:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46649,2.3.2,2023-11-02T03:29:00Z,9999-01-01T00:00:00Z,
+Canterbury Seismic Instruments,EQR120,46650,2.3.2,2024-02-29T21:01:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46651,2.3.2,2023-11-28T21:23:00Z,9999-01-01T00:00:00Z,
+Canterbury Seismic Instruments,EQR120,46652,2.3.2,2024-03-01T00:19:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46653,2.3.2,2023-11-26T22:43:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46654,2.3.2,2023-10-18T01:45:00Z,9999-01-01T00:00:00Z,
Canterbury Seismic Instruments,EQR120,46655,2.3.2,2023-11-02T20:58:00Z,9999-01-01T00:00:00Z,
@@ -435,6 +445,9 @@ Nanometrics,Centaur CTR4-6S,10233,4.5.20,2023-05-22T03:13:00Z,9999-01-01T00:00:0
Nanometrics,Centaur CTR4-6S,10234,4.8.5,2023-05-30T22:13:00Z,9999-01-01T00:00:00Z,
Nanometrics,Centaur CTR4-6S,10235,4.8.5,2023-05-25T16:19:00Z,9999-01-01T00:00:00Z,
Nanometrics,Centaur CTR4-6S,10236,4.8.5,2023-09-20T03:08:00Z,9999-01-01T00:00:00Z,
+Nanometrics,Centaur CTR4-6S,10840,4.8.5,2024-03-03T20:30:00Z,9999-01-01T00:00:00Z,
+Nanometrics,Centaur CTR4-6S,10956,4.8.5,2024-03-06T04:27:00Z,9999-01-01T00:00:00Z,
+Nanometrics,Centaur CTR4-6S,10961,4.8.5,2024-03-20T23:16:00Z,9999-01-01T00:00:00Z,
Nanometrics,Centaur CTR4-6S,7810,4.5.20,2023-03-06T23:19:00Z,2023-08-11T00:56:11Z,
Nanometrics,Centaur CTR4-6S,7810,4.8.5,2023-08-11T00:56:11Z,9999-01-01T00:00:00Z,
Nanometrics,Centaur CTR4-6S,7931,4.5.20,2023-03-17T03:00:00Z,2023-08-08T08:37:42Z,
@@ -644,6 +657,7 @@ Nanometrics,Centaur CTR4-6S,9894,4.8.5,2023-06-27T00:27:00Z,9999-01-01T00:00:00Z
Nanometrics,Centaur CTR4-6S,9895,4.8.5,2023-07-19T21:31:00Z,9999-01-01T00:00:00Z,
Nanometrics,Centaur CTR4-6S,9899,4.5.20,2023-05-10T04:05:00Z,9999-01-01T00:00:00Z,
Nanometrics,Centaur CTR4-6S,9901,4.8.5,2023-08-07T03:55:00Z,9999-01-01T00:00:00Z,
+Nanometrics,Centaur CTR4-6S,9902,4.8.5,2024-02-28T00:10:00Z,9999-01-01T00:00:00Z,
Nanometrics,Centaur CTR4-6S,9903,4.5.20,2023-03-01T04:03:00Z,2023-08-15T05:50:33Z,
Nanometrics,Centaur CTR4-6S,9903,4.8.5,2023-08-15T05:50:33Z,9999-01-01T00:00:00Z,
Nanometrics,Centaur CTR4-6S,9904,4.8.5,2023-09-14T04:26:00Z,9999-01-01T00:00:00Z,
@@ -725,7 +739,7 @@ Nanometrics,TitanSMA,001898,4.5.22,2022-07-13T00:30:00Z,9999-01-01T00:00:00Z,
Nanometrics,TitanSMA,001899,4.5.22,2023-09-15T00:21:00Z,9999-01-01T00:00:00Z,
Nanometrics,TitanSMA,001912,4.3.28,2022-10-20T02:28:00Z,9999-01-01T00:00:00Z,
Nanometrics,TitanSMA,001913,4.5.22,2023-01-29T01:27:00Z,9999-01-01T00:00:00Z,
-Nanometrics,TitanSMA,001914,4.5.22,2023-09-28T00:29:00Z,9999-01-01T00:00:00Z,
+Nanometrics,TitanSMA,001914,4.5.22,2023-09-28T00:29:00Z,2024-02-25T23:43:00Z,
Nanometrics,TitanSMA,001915,4.5.22,2022-09-06T21:37:00Z,9999-01-01T00:00:00Z,
Nanometrics,TitanSMA,002024,4.5.22,2023-11-13T21:29:00Z,9999-01-01T00:00:00Z,
Nanometrics,TitanSMA,002026,4.5.22,2023-06-14T03:35:00Z,9999-01-01T00:00:00Z,
@@ -737,11 +751,18 @@ Nanometrics,TitanSMA,002176,4.5.22,2023-12-20T02:14:00Z,9999-01-01T00:00:00Z,
Nanometrics,TitanSMA,002177,4.5.22,2023-11-27T23:30:00Z,9999-01-01T00:00:00Z,
Nanometrics,TitanSMA,002178,4.5.22,2023-12-14T02:19:00Z,9999-01-01T00:00:00Z,
Nanometrics,TitanSMA,002179,4.5.22,2024-01-19T03:27:00Z,9999-01-01T00:00:00Z,
+Nanometrics,TitanSMA,002180,4.5.22,2024-02-25T23:59:00Z,9999-01-01T00:00:00Z,
Nanometrics,TitanSMA,002181,4.5.22,2023-11-27T01:51:00Z,9999-01-01T00:00:00Z,
Nanometrics,TitanSMA,002183,4.5.22,2023-11-13T01:53:00Z,9999-01-01T00:00:00Z,
Nanometrics,TitanSMA,002184,4.5.22,2023-12-12T23:31:00Z,9999-01-01T00:00:00Z,
Nanometrics,TitanSMA,002185,4.5.22,2023-12-13T20:45:00Z,9999-01-01T00:00:00Z,
+Nanometrics,TitanSMA,002199,4.5.22,2024-02-15T01:00:00Z,9999-01-01T00:00:00Z,
+Nanometrics,TitanSMA,002203,4.5.22,2024-02-29T02:18:00Z,9999-01-01T00:00:00Z,
+Nanometrics,TitanSMA,002204,4.5.22,2024-02-28T23:26:00Z,9999-01-01T00:00:00Z,
+Nanometrics,TitanSMA,002205,4.5.22,2024-02-20T21:06:00Z,9999-01-01T00:00:00Z,
+Nanometrics,TitanSMA,002208,4.5.22,2024-02-28T23:23:00Z,9999-01-01T00:00:00Z,
Nanometrics,TitanSMA,002210,4.5.22,2023-11-23T21:52:00Z,9999-01-01T00:00:00Z,
+Nanometrics,TitanSMA,002211,4.5.22,2024-02-07T01:53:00Z,9999-01-01T00:00:00Z,
SAIC,BPR Subsystem,141002,02.07,2019-12-17T00:00:00Z,2020-03-25T00:00:00Z,
SAIC,BPR Subsystem,141012,02.07,2019-12-22T00:00:00Z,9999-01-01T00:00:00Z,
SAIC,BPR Subsystem,141016,02.07,2019-12-13T00:00:00Z,9999-01-01T00:00:00Z,
@@ -1098,6 +1119,7 @@ Trimble Navigation Ltd.,TRIMBLE ALLOY,6222R40136,5.45,2023-11-14T22:47:26Z,9999-
Trimble Navigation Ltd.,TRIMBLE ALLOY,6223R40055,6.14,2023-03-30T00:01:02Z,9999-01-01T00:00:00Z,
Trimble Navigation Ltd.,TRIMBLE ALLOY,6225R40007,6.14,2022-12-06T01:37:08Z,9999-01-01T00:00:00Z,
Trimble Navigation Ltd.,TRIMBLE ALLOY,6225R40025,6.14,2023-05-25T04:19:02Z,9999-01-01T00:00:00Z,
+Trimble Navigation Ltd.,TRIMBLE ALLOY,6402R40041,6.14,2024-03-13T00:09:38Z,9999-01-01T00:00:00Z,
Trimble Navigation Ltd.,TRIMBLE NETR5,4737K07041,3.50,2008-02-28T00:00:00Z,2017-06-13T00:00:00Z,
Trimble Navigation Ltd.,TRIMBLE NETR5,4737K07041,4.01,2017-06-13T00:00:01Z,9999-01-01T00:00:00Z,
Trimble Navigation Ltd.,TRIMBLE NETR9,5014K66721,4.17A,2010-09-19T00:00:00Z,2012-03-29T21:30:00Z,
diff --git a/install/gains.csv b/install/gains.csv
index aaf94b26c..8a8cca83b 100644
--- a/install/gains.csv
+++ b/install/gains.csv
@@ -2,11 +2,21 @@ Station,Location,Sublocation,Subsource,Scale Factor,Scale Bias,Absolute Bias,Sta
AHAM,50,,X,,0x60,,2022-03-19T00:00:00Z,9999-01-01T00:00:00Z
AHAM,50,,Y,,0x00,,2022-03-19T00:00:00Z,9999-01-01T00:00:00Z
AHAM,50,,Z,,0xb0,,2022-03-19T00:00:00Z,9999-01-01T00:00:00Z
-ALS1R,01,01,,0.2,,,2023-02-24T01:09:00Z,9999-01-01T00:00:00Z
+ALS1R,01,01,,0.2,,,2023-02-24T01:09:00Z,2024-02-25T13:50:01Z
ALS2R,01,01,,0.2,,,2023-02-23T03:59:00Z,9999-01-01T00:00:00Z
APIM,50,,X,,0xdf,,2011-07-25T00:00:00Z,9999-01-01T00:00:00Z
APIM,50,,Y,,0x00,,2011-07-25T00:00:00Z,9999-01-01T00:00:00Z
APIM,50,,Z,,0x85,,2011-07-25T00:00:00Z,9999-01-01T00:00:00Z
+CPXB,21,,,0.1,,,2010-05-01T00:00:00Z,2015-05-07T02:00:00Z
+CPXB,22,,,0.1,,,2010-05-01T00:00:00Z,2015-05-07T02:00:00Z
+CPXB,23,,,0.1,,,2010-05-01T00:00:00Z,2015-05-07T02:00:00Z
+CPXB,24,,,0.1,,,2010-05-01T00:00:00Z,2015-05-07T02:00:00Z
+CPXB,25,,,0.1,,,2010-05-01T00:00:00Z,2015-05-07T02:00:00Z
+CPXB,26,,,0.1,,,2010-05-01T00:00:00Z,2015-05-07T02:00:00Z
+CPXB,27,,,0.1,,,2010-05-01T00:00:00Z,2015-05-07T02:00:00Z
+CPXB,28,,,0.1,,,2010-05-01T00:00:00Z,2015-05-07T02:00:00Z
+CPXB,29,,,0.1,,,2010-05-01T00:00:00Z,2015-05-07T02:00:00Z
+CPXB,2A,,,0.1,,,2010-05-01T00:00:00Z,2015-05-07T02:00:00Z
EYWM,50,,X,,0x8f,,2013-12-15T00:00:00Z,9999-01-01T00:00:00Z
EYWM,50,,Y,,0x00,,2013-12-15T00:00:00Z,9999-01-01T00:00:00Z
EYWM,50,,Z,,0x6d,,2013-12-15T00:00:00Z,9999-01-01T00:00:00Z
@@ -20,12 +30,16 @@ FOXVF,05,01,,,-5.494182,,2023-02-09T02:50:01Z,9999-01-01T00:00:00Z
FOXVV,01,01,,0.5,,,2023-02-09T03:29:59Z,9999-01-01T00:00:00Z
FOXVV,04,01,,,-8.570246,,2023-02-09T03:50:01Z,9999-01-01T00:00:00Z
FOXVV,05,01,,,-4.625630,,2023-02-09T03:50:01Z,9999-01-01T00:00:00Z
+NA002,05,01,,0.0625,-25,,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
+NA002,06,01,,0.0625,-25,,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
OT001,03,01,,0.70325,,,2022-07-28T01:59:00Z,9999-01-01T00:00:00Z
OT001,04,01,,-1,1.327,,2019-10-11T00:50:00Z,9999-01-01T00:00:00Z
RLGLK,04,01,,0.70325,,,2023-01-30T02:59:59Z,9999-01-01T00:00:00Z
SBAM,50,,X,,0x4f,,2009-03-02T00:00:00Z,2023-10-22T23:59:00Z
SBAM,50,,Y,,0x00,,2009-03-02T00:00:00Z,2023-10-22T23:59:00Z
SBAM,50,,Z,,0xc1,,2009-03-02T00:00:00Z,2023-10-22T23:59:00Z
+TO003,13,01,,0.0625,-25,,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+TO003,14,01,,0.0625,-25,,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
TOUEM,01,01,,0.70325,,,2021-05-21T00:00:00Z,9999-01-01T00:00:00Z
TOUTL,01,01,,0.70325,,,2019-03-12T03:30:00Z,9999-01-01T00:00:00Z
TRAR1,05,01,,0.5,,,2023-04-18T04:00:00Z,9999-01-01T00:00:00Z
diff --git a/install/receivers.csv b/install/receivers.csv
index ef68d3221..fefee9201 100644
--- a/install/receivers.csv
+++ b/install/receivers.csv
@@ -192,6 +192,7 @@ Trimble Navigation Ltd.,TRIMBLE ALLOY,6222R40136,YALD,2023-11-14T22:47:26Z,9999-
Trimble Navigation Ltd.,TRIMBLE ALLOY,6223R40055,AUKT,2023-03-30T00:01:02Z,9999-01-01T00:00:00Z
Trimble Navigation Ltd.,TRIMBLE ALLOY,6225R40007,2004,2022-12-06T01:37:08Z,9999-01-01T00:00:00Z
Trimble Navigation Ltd.,TRIMBLE ALLOY,6225R40025,TGHM,2023-05-25T04:19:02Z,9999-01-01T00:00:00Z
+Trimble Navigation Ltd.,TRIMBLE ALLOY,6402R40041,BIRF,2024-03-13T00:09:38Z,9999-01-01T00:00:00Z
Trimble Navigation Ltd.,TRIMBLE NETR5,4737K07041,OUSD,2008-02-29T00:00:00Z,2008-10-15T23:59:59Z
Trimble Navigation Ltd.,TRIMBLE NETR5,4737K07041,OUSD,2017-06-14T00:00:00Z,9999-01-01T00:00:00Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5014K66721,METH,2010-10-12T00:24:01Z,2014-07-27T21:49:59Z
@@ -231,7 +232,7 @@ Trimble Navigation Ltd.,TRIMBLE NETR9,5034K69679,MAVL,2010-12-20T21:48:15Z,2011-
Trimble Navigation Ltd.,TRIMBLE NETR9,5034K69679,RGUT,2018-04-16T23:45:02Z,2019-12-16T22:11:25Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5034K69680,DUND,2010-11-24T23:35:01Z,2015-05-26T01:48:12Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5034K69680,NRRD,2015-07-07T00:23:22Z,2018-05-21T01:04:37Z
-Trimble Navigation Ltd.,TRIMBLE NETR9,5034K69680,RGWI,2018-07-18T00:06:02Z,9999-01-01T00:00:00Z
+Trimble Navigation Ltd.,TRIMBLE NETR9,5034K69680,RGWI,2018-07-18T00:06:02Z,2023-12-01T00:00:00Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5034K69682,LEXA,2010-12-20T04:56:46Z,2019-10-10T03:44:01Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5034K69683,MAHO,2011-01-11T02:45:40Z,2011-05-17T01:45:00Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5034K69683,RAHI,2011-07-18T04:20:51Z,2018-09-26T00:44:19Z
@@ -379,7 +380,7 @@ Trimble Navigation Ltd.,TRIMBLE NETR9,5249K54373,MRBL,2014-07-02T02:05:38Z,2024-
Trimble Navigation Ltd.,TRIMBLE NETR9,5301K56131,VGET,2014-03-12T03:12:38Z,2023-01-16T01:46:19Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5302K41648,PGKH,2014-10-14T21:10:00Z,9999-01-01T00:00:00Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5304K50023,MING,2014-12-03T00:55:02Z,9999-01-01T00:00:00Z
-Trimble Navigation Ltd.,TRIMBLE NETR9,5306K41807,RGWC,2014-01-29T01:57:08Z,9999-01-01T00:00:00Z
+Trimble Navigation Ltd.,TRIMBLE NETR9,5306K41807,RGWC,2014-01-29T01:57:08Z,2023-12-01T00:00:00Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5306K41857,PGNE,2014-09-29T04:00:00Z,2023-07-12T02:35:08Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5306K41861,CAST,2013-12-03T00:00:02Z,2016-08-23T01:30:17Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5306K41861,AVLN,2016-09-19T02:31:29Z,2020-07-08T02:12:15Z
@@ -474,7 +475,7 @@ Trimble Navigation Ltd.,TRIMBLE NETR9,5522R50044,TGHO,2016-08-17T00:22:38Z,2022-
Trimble Navigation Ltd.,TRIMBLE NETR9,5522R50045,CLIM,2015-08-20T22:57:39Z,2019-07-07T22:54:07Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5522R50045,PKNO,2019-08-13T22:50:17Z,9999-01-01T00:00:00Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5522R50046,AHTI,2015-12-07T02:04:38Z,9999-01-01T00:00:00Z
-Trimble Navigation Ltd.,TRIMBLE NETR9,5522R50047,BIRF,2015-10-08T01:25:08Z,9999-01-01T00:00:00Z
+Trimble Navigation Ltd.,TRIMBLE NETR9,5522R50047,BIRF,2015-10-08T01:25:08Z,2024-03-13T00:09:37Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5522R50048,VGOT,2017-02-21T21:22:32Z,9999-01-01T00:00:00Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5522R50049,NMAI,2017-05-02T23:43:08Z,9999-01-01T00:00:00Z
Trimble Navigation Ltd.,TRIMBLE NETR9,5522R50050,MATW,2015-12-10T22:44:38Z,9999-01-01T00:00:00Z
diff --git a/install/recorders.csv b/install/recorders.csv
index 1ebb88b56..4cb9df207 100644
--- a/install/recorders.csv
+++ b/install/recorders.csv
@@ -374,14 +374,14 @@ Canterbury Seismic Instruments,CUSP3D,CUSP3D,42027,ORCS,20,0,,0,0,2014-08-08T01:
Canterbury Seismic Instruments,CUSP3D,CUSP3D,42027,ORCS,20,286,,0,0,2014-08-08T22:37:00Z,2015-09-17T23:30:00Z
Canterbury Seismic Instruments,CUSP3D,CUSP3D,42027,PRPC,20,180,,0,0,2017-08-23T23:45:05Z,2023-10-19T19:50:00Z
Canterbury Seismic Instruments,CUSP3D,CUSP3D,42028,SEAS,20,178,,0,0,2012-04-27T01:00:00Z,2013-11-14T22:00:00Z
-Canterbury Seismic Instruments,CUSP3D,CUSP3D,42028,FXBS,20,145,,0,0,2014-05-16T03:17:00Z,9999-01-01T00:00:00Z
+Canterbury Seismic Instruments,CUSP3D,CUSP3D,42028,FXBS,20,145,,0,0,2014-05-16T03:17:00Z,2024-02-28T21:03:00Z
Canterbury Seismic Instruments,CUSP3D,CUSP3D,42029,MKVS,20,132,,0,0,2011-11-07T02:03:00Z,2013-10-11T02:00:00Z
Canterbury Seismic Instruments,CUSP3D,CUSP3D,42029,EBPS,20,308,,0,0,2014-05-21T01:40:00Z,2016-09-08T23:00:00Z
Canterbury Seismic Instruments,CUSP3D,CUSP3D,42029,GDLC,20,215,,0,0,2017-09-13T05:23:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,CUSP3D,CUSP3D,42031,LNBS,20,96,,0,0,2011-12-08T21:54:28Z,2013-10-10T02:00:00Z
Canterbury Seismic Instruments,CUSP3D,CUSP3D,42031,PNRS,20,84.4,,0,0,2013-10-17T00:55:00Z,2015-08-06T00:10:00Z
Canterbury Seismic Instruments,CUSP3D,CUSP3D,42031,PNMS,20,283,,0,0,2016-05-18T23:55:00Z,2020-05-21T23:31:00Z
-Canterbury Seismic Instruments,CUSP3D,CUSP3D,42031,PNMS,21,283,,0,0,2020-05-28T02:54:00Z,9999-01-01T00:00:00Z
+Canterbury Seismic Instruments,CUSP3D,CUSP3D,42031,PNMS,21,283,,0,0,2020-05-28T02:54:00Z,2024-02-29T00:45:00Z
Canterbury Seismic Instruments,CUSP3D,CUSP3D,42032,PNRS,20,88.4,,0,0,2012-04-12T00:46:00Z,2012-04-26T00:30:00Z
Canterbury Seismic Instruments,CUSP3D,CUSP3D,42032,GHHS,20,355,,0,0,2012-11-29T20:07:00Z,2016-08-08T21:00:00Z
Canterbury Seismic Instruments,CUSP3D,CUSP3D,42032,TMHS,21,340,,0,0,2017-07-20T00:00:02Z,9999-01-01T00:00:00Z
@@ -654,11 +654,11 @@ Canterbury Seismic Instruments,CUSPM,CUSPM,11068,CPLB,2E,37,,0,-23.12,2009-04-15
Canterbury Seismic Instruments,CUSPM,CUSPM,11069,CPLB,2F,37,,0,-23.5,2009-04-15T00:00:03Z,2019-01-19T21:00:00Z
Canterbury Seismic Instruments,CUSPM,CUSPM,13032,CPXB,27,302,,0,-24.5,2010-05-01T00:00:02Z,2020-12-14T19:55:00Z
Canterbury Seismic Instruments,CUSPM,CUSPM,13041,AVAB,28,240,,0,1.228,2007-11-05T00:00:00Z,9999-01-01T00:00:00Z
-Canterbury Seismic Instruments,EQR120,EQR120,46491,EBFS,20,22,,0,0,2021-05-06T21:46:00Z,9999-01-01T00:00:00Z
+Canterbury Seismic Instruments,EQR120,EQR120,46491,EBFS,20,22,,0,0,2021-05-06T21:46:00Z,2023-06-15T21:28:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46492,BOWS,20,10,,0,0,2020-11-09T01:15:00Z,2021-05-05T03:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46492,HORC,20,18,,0,0,2021-10-14T01:45:00Z,2023-10-18T00:37:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46493,DORC,20,340,,0,0,2021-04-01T02:34:00Z,2021-04-28T23:11:00Z
-Canterbury Seismic Instruments,EQR120,EQR120,46493,CSTC,20,178,,0,0,2021-10-14T01:48:00Z,9999-01-01T00:00:00Z
+Canterbury Seismic Instruments,EQR120,EQR120,46493,CSTC,20,178,,0,0,2021-10-14T01:48:00Z,2024-02-29T20:53:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46494,EBFS,20,22,,0,0,2021-02-25T23:48:00Z,2021-05-06T21:40:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46494,MJCB,21,23,,0,7.5,2023-05-25T03:15:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46495,MJCB,22,23,,0,7.5,2023-05-25T03:15:00Z,9999-01-01T00:00:00Z
@@ -693,7 +693,7 @@ Canterbury Seismic Instruments,EQR120,EQR120,46528,NBSS,21,43,,0,0,2022-03-18T04
Canterbury Seismic Instruments,EQR120,EQR120,46529,HVSC,20,116,,0,0,2021-04-27T20:16:00Z,2022-03-31T22:31:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46529,BOWS,20,10,,0,0,2022-10-17T22:04:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46530,CULC,20,203,,0,0,2021-04-27T23:01:00Z,2023-10-30T22:06:00Z
-Canterbury Seismic Instruments,EQR120,EQR120,46531,SMTC,20,0,,0,0,2021-04-27T01:41:00Z,9999-01-01T00:00:00Z
+Canterbury Seismic Instruments,EQR120,EQR120,46531,SMTC,20,0,,0,0,2021-04-27T01:41:00Z,2024-02-29T22:03:30Z
Canterbury Seismic Instruments,EQR120,EQR120,46532,DORC,20,340,,0,0,2021-04-28T23:17:00Z,2023-11-28T20:26:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46533,LRSC,20,221,,0,0,2023-11-29T00:41:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46534,MPSS,21,145,,0,0,2023-10-29T22:53:00Z,9999-01-01T00:00:00Z
@@ -704,9 +704,10 @@ Canterbury Seismic Instruments,EQR120,EQR120,46537,MSMC,20,29,,0,0,2021-09-21T04
Canterbury Seismic Instruments,EQR120,EQR120,46538,PEEC,20,259,,0,0,2023-11-29T22:53:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46539,ROLC,20,150,,0,0,2023-10-31T22:17:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46540,HVSC,20,116,,0,0,2022-03-31T22:39:00Z,2023-11-26T21:14:00Z
-Canterbury Seismic Instruments,EQR120,EQR120,46541,JSCB,21,252,,0,-0.3,2022-06-23T01:55:00Z,9999-01-01T00:00:00Z
-Canterbury Seismic Instruments,EQR120,EQR120,46542,JSCB,22,252,,0,-2.5,2022-06-23T01:55:00Z,9999-01-01T00:00:00Z
-Canterbury Seismic Instruments,EQR120,EQR120,46543,JSCB,23,252,,0,-2.5,2022-06-23T01:55:00Z,9999-01-01T00:00:00Z
+Canterbury Seismic Instruments,EQR120,EQR120,46541,JSCB,21,252,,0,-0.3,2022-06-23T01:55:00Z,2024-02-29T02:25:00Z
+Canterbury Seismic Instruments,EQR120,EQR120,46542,JSCB,22,252,,0,-2.5,2022-06-23T01:55:00Z,2024-02-29T02:57:00Z
+Canterbury Seismic Instruments,EQR120,EQR120,46543,JSCB,23,252,,0,-2.5,2022-06-23T01:55:00Z,2024-02-29T02:48:00Z
+Canterbury Seismic Instruments,EQR120,EQR120,46571,JSCB,21,252,,0,-0.3,2024-02-29T02:42:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46594,CPFS,21,49,,0,0,2023-02-10T01:10:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46595,MKVS,20,132,,0,0,2023-01-12T23:45:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46596,PVCS,20,23,,0,0,2023-01-13T01:55:00Z,9999-01-01T00:00:00Z
@@ -719,6 +720,7 @@ Canterbury Seismic Instruments,EQR120,EQR120,46603,MJCB,26,23,,0,-14,2023-05-25T
Canterbury Seismic Instruments,EQR120,EQR120,46604,MJCB,27,23,,0,-33,2023-05-25T03:15:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46605,MJCB,28,23,,0,-51,2023-05-25T03:15:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46607,MJCB,29,23,,0,-51,2023-05-25T03:15:00Z,9999-01-01T00:00:00Z
+Canterbury Seismic Instruments,EQR120,EQR120,46608,JSCB,22,252,,0,-2.5,2024-02-29T03:06:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46609,MJCB,2A,23,,0,-66,2023-05-25T03:15:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46610,FAHS,21,194,,0,0,2023-12-13T20:44:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46611,MJCB,2B,23,,0,-92.5,2023-05-25T03:15:00Z,9999-01-01T00:00:00Z
@@ -728,6 +730,7 @@ Canterbury Seismic Instruments,EQR120,EQR120,46614,MJCB,2E,23,,0,-92.5,2023-05-2
Canterbury Seismic Instruments,EQR120,EQR120,46615,MJCB,2F,23,,0,-98,2023-05-25T03:15:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46617,HOCS,20,0,,0,0,2023-07-10T23:10:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46618,MENS,20,0,,0,0,2023-06-30T03:08:00Z,9999-01-01T00:00:00Z
+Canterbury Seismic Instruments,EQR120,EQR120,46619,JSCB,23,252,,0,-2.5,2024-02-29T02:57:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46621,PTOS,20,187,,0,0,2023-02-01T01:21:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46622,GRAS,20,0,,0,0,2023-07-03T23:29:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46623,GRAS,21,0,,0,0,2023-07-03T23:29:00Z,9999-01-01T00:00:00Z
@@ -735,12 +738,15 @@ Canterbury Seismic Instruments,EQR120,EQR120,46624,GRAS,22,0,,0,0,2023-07-03T23:
Canterbury Seismic Instruments,EQR120,EQR120,46625,EKTS,20,87,,0,0,2023-02-20T23:14:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46626,SBRC,20,330,,0,0,2023-11-01T01:07:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46627,NBSS,21,43,,0,0,2023-11-15T01:13:00Z,9999-01-01T00:00:00Z
+Canterbury Seismic Instruments,EQR120,EQR120,46628,SMTC,20,0,,0,0,2024-02-29T22:04:20Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46629,SWNC,20,294,,0,0,2023-10-18T22:07:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46631,TMBS,20,99,,0,0,2022-12-01T19:48:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46647,AMBC,20,266,,0,0,2023-10-31T02:03:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46648,CULC,20,203,,0,0,2023-10-30T23:19:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46649,CCCC,20,334,,0,0,2023-11-02T03:29:00Z,9999-01-01T00:00:00Z
+Canterbury Seismic Instruments,EQR120,EQR120,46650,CSTC,20,178,,0,0,2024-02-29T21:01:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46651,DORC,20,340,,0,0,2023-11-28T21:23:00Z,9999-01-01T00:00:00Z
+Canterbury Seismic Instruments,EQR120,EQR120,46652,EBFS,20,22,,0,0,2024-03-01T00:19:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46653,HVSC,20,116,,0,0,2023-11-26T22:43:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46654,HORC,20,18,,0,0,2023-10-18T01:45:00Z,9999-01-01T00:00:00Z
Canterbury Seismic Instruments,EQR120,EQR120,46655,KPOC,20,15,,0,0,2023-11-02T20:58:00Z,9999-01-01T00:00:00Z
@@ -889,7 +895,7 @@ Kinemetrics,FBA-ES-T-BASALT,BASALT,1674,SUMS,20,212,,0,0,2013-01-10T22:09:00Z,20
Kinemetrics,FBA-ES-T-BASALT,BASALT,1674,PWES,20,42,,0,0,2014-03-13T00:10:00Z,2021-07-14T22:02:00Z
Kinemetrics,FBA-ES-T-BASALT,BASALT,1675,AKSS,20,0,,0,0,2013-08-30T00:05:00Z,2017-09-13T23:10:00Z
Kinemetrics,FBA-ES-T-BASALT,BASALT,1675,INSS,20,76,,0,0,2018-01-12T00:00:00Z,2019-11-01T01:05:00Z
-Kinemetrics,FBA-ES-T-BASALT,BASALT,1675,LTZ,21,0,,0,0,2020-03-11T03:20:00Z,9999-01-01T00:00:00Z
+Kinemetrics,FBA-ES-T-BASALT,BASALT,1675,LTZ,21,0,,0,0,2020-03-11T03:20:00Z,2024-02-06T22:56:00Z
Kinemetrics,FBA-ES-T-BASALT,BASALT,1676,NNZ,21,0,,0,0,2013-01-18T00:30:00Z,2013-07-16T00:00:00Z
Kinemetrics,FBA-ES-T-BASALT,BASALT,1676,EKS1,20,247,,0,0,2014-01-22T00:05:00Z,2014-07-29T01:30:00Z
Kinemetrics,FBA-ES-T-BASALT,BASALT,1676,TRMS,20,247,,0,0,2014-07-29T01:45:00Z,2024-01-18T21:41:00Z
@@ -941,7 +947,7 @@ Kinemetrics,FBA-ES-T-BASALT,BASALT,1770,WDAS,20,93,,0,0,2015-01-08T00:00:05Z,201
Kinemetrics,FBA-ES-T-BASALT,BASALT,1770,HBHS,20,86,,0,0,2020-06-19T00:03:00Z,9999-01-01T00:00:00Z
Kinemetrics,FBA-ES-T-BASALT,BASALT,2024,PTOS,20,7,,0,0,2013-12-16T14:00:00Z,2013-12-18T11:25:32Z
Kinemetrics,FBA-ES-T-BASALT,BASALT,2024,MLZ,21,60,,0,0,2014-03-25T00:05:00Z,2019-10-31T21:33:00Z
-Kinemetrics,FBA-ES-T-BASALT,BASALT,2024,MLZ,21,0,,0,0,2019-10-31T21:34:00Z,9999-01-01T00:00:00Z
+Kinemetrics,FBA-ES-T-BASALT,BASALT,2024,MLZ,21,0,,0,0,2019-10-31T21:34:00Z,2024-02-15T00:09:00Z
Kinemetrics,FBA-ES-T-BASALT,BASALT,2025,PTOS,20,7,,0,0,2013-11-18T22:47:00Z,2013-12-16T13:47:29Z
Kinemetrics,FBA-ES-T-BASALT,BASALT,2025,RRKS,20,94,,0,0,2014-06-06T00:25:25Z,9999-01-01T00:00:00Z
Kinemetrics,FBA-ES-T-BASALT,BASALT,2026,SEDS,20,127,,0,0,2013-07-23T06:00:10Z,2014-09-03T00:00:00Z
@@ -985,7 +991,8 @@ Kinemetrics,FBA-ES-T-BASALT,BASALT,2154,NWFS,20,23,,0,0,2014-10-31T00:10:00Z,999
Kinemetrics,FBA-ES-T-BASALT,BASALT,2155,OXZ,21,0,,0,0.6,2014-10-30T00:10:00Z,2016-02-23T20:00:00Z
Kinemetrics,FBA-ES-T-BASALT,BASALT,2155,RLNS,20,252,,0,0,2017-05-24T00:00:05Z,2020-06-23T00:22:00Z
Kinemetrics,FBA-ES-T-BASALT,BASALT,2156,WBHS,20,189,,0,0,2014-09-12T00:03:00Z,2014-09-12T00:04:00Z
-Kinemetrics,FBA-ES-T-BASALT,BASALT,2156,WBHS,20,231,,0,0,2014-09-12T00:05:00Z,9999-01-01T00:00:00Z
+Kinemetrics,FBA-ES-T-BASALT,BASALT,2156,WBHS,20,231,,0,0,2014-09-12T00:05:00Z,2022-05-18T07:28:00Z
+Kinemetrics,FBA-ES-T-BASALT,BASALT,2156,WBHS,21,190,,0,0,2023-01-17T23:15:00Z,2024-02-28T21:41:00Z
Kinemetrics,FBA-ES-T-BASALT,BASALT,2157,WRCS,20,282,,0,0,2014-10-15T02:30:00Z,2019-01-10T00:00:00Z
Kinemetrics,FBA-ES-T-BASALT,BASALT,2157,INSS,20,76,,0,0,2019-11-01T01:30:00Z,9999-01-01T00:00:00Z
Kinemetrics,FBA-ES-T-BASALT,BASALT,2158,PAPS,20,87,,0,0,2014-10-13T01:15:00Z,9999-01-01T00:00:00Z
@@ -1393,7 +1400,7 @@ Kinemetrics,FBA-ES-T-OBSIDIAN,OBSIDIAN,620,KARS,20,14.5,,0,0,2019-03-24T20:50:00
Kinemetrics,FBA-ES-T-OBSIDIAN,OBSIDIAN,823,ODZ,21,0,,0,0,2017-06-28T22:21:00Z,9999-01-01T00:00:00Z
Kinemetrics,FBA-ES-T-OBSIDIAN,OBSIDIAN,824,BFZ,20,0,,0,0,2017-08-30T00:00:20Z,9999-01-01T00:00:00Z
Kinemetrics,FBA-ES-T-OBSIDIAN,OBSIDIAN,836,WTMC,20,62,,0,0,2017-08-30T03:00:00Z,9999-01-01T00:00:00Z
-Kinemetrics,FBA-ES-T-OBSIDIAN,OBSIDIAN,837,WKZ,21,0,,0,0,2017-06-28T20:21:00Z,9999-01-01T00:00:00Z
+Kinemetrics,FBA-ES-T-OBSIDIAN,OBSIDIAN,837,WKZ,21,0,,0,0,2017-06-28T20:21:00Z,2022-11-27T22:22:00Z
Kinemetrics,FBA-ES-T-OBSIDIAN,OBSIDIAN,838,LPDS,20,0,,0,0,2018-08-24T03:40:00Z,9999-01-01T00:00:00Z
Kinemetrics,QDR,QDR,0180,904D,20,270,,0,0,2000-08-03T00:00:00Z,2014-07-09T23:00:00Z
Kinemetrics,QDR,QDR,0181,924I,20,308,,0,0,2000-07-07T00:00:00Z,2014-07-15T00:00:00Z
@@ -1452,7 +1459,7 @@ Nanometrics,Titan,TitanSMA,001898,SOMS,20,0,,0,0,2022-07-13T00:30:00Z,9999-01-01
Nanometrics,Titan,TitanSMA,001899,NCDS,20,244,,0,0,2023-09-15T00:21:00Z,9999-01-01T00:00:00Z
Nanometrics,Titan,TitanSMA,001912,INGS,20,280,,0,0,2022-10-20T02:28:00Z,9999-01-01T00:00:00Z
Nanometrics,Titan,TitanSMA,001913,RIZ,20,0,,0,0,2023-01-29T01:27:00Z,9999-01-01T00:00:00Z
-Nanometrics,Titan,TitanSMA,001914,ORPS,20,81,,0,0,2023-09-28T00:29:00Z,9999-01-01T00:00:00Z
+Nanometrics,Titan,TitanSMA,001914,ORPS,20,81,,0,0,2023-09-28T00:29:00Z,2024-02-25T23:43:00Z
Nanometrics,Titan,TitanSMA,001915,KAPS,20,10,,0,0,2022-09-06T21:37:00Z,9999-01-01T00:00:00Z
Nanometrics,Titan,TitanSMA,002024,HSSS,20,219,,0,0,2023-11-13T21:29:00Z,9999-01-01T00:00:00Z
Nanometrics,Titan,TitanSMA,002026,MSZ,21,240,,0,0,2023-06-14T03:35:00Z,9999-01-01T00:00:00Z
@@ -1464,11 +1471,18 @@ Nanometrics,Titan,TitanSMA,002176,CTZ,21,0,,0,0,2023-12-20T02:14:00Z,9999-01-01T
Nanometrics,Titan,TitanSMA,002177,SCAC,20,260,,0,0,2023-11-27T23:30:00Z,9999-01-01T00:00:00Z
Nanometrics,Titan,TitanSMA,002178,KLDS,20,265,,0,0,2023-12-14T02:19:00Z,9999-01-01T00:00:00Z
Nanometrics,Titan,TitanSMA,002179,TRMS,21,297,,0,0,2024-01-19T03:27:00Z,9999-01-01T00:00:00Z
+Nanometrics,Titan,TitanSMA,002180,ORPS,20,81,,0,0,2024-02-25T23:59:00Z,9999-01-01T00:00:00Z
Nanometrics,Titan,TitanSMA,002181,DSLC,20,154,,0,0,2023-11-27T01:51:00Z,9999-01-01T00:00:00Z
Nanometrics,Titan,TitanSMA,002183,WRCS,20,282,,0,0,2023-11-13T01:53:00Z,9999-01-01T00:00:00Z
Nanometrics,Titan,TitanSMA,002184,KHLS,20,225,,0,0,2023-12-12T23:31:00Z,9999-01-01T00:00:00Z
Nanometrics,Titan,TitanSMA,002185,SEDS,20,127,,0,0,2023-12-13T20:45:00Z,9999-01-01T00:00:00Z
+Nanometrics,Titan,TitanSMA,002199,MLZ,21,0,,0,0,2024-02-15T01:00:00Z,9999-01-01T00:00:00Z
+Nanometrics,Titan,TitanSMA,002203,PNMS,21,283,,0,0,2024-02-29T02:18:00Z,9999-01-01T00:00:00Z
+Nanometrics,Titan,TitanSMA,002204,FXBS,20,145,,0,0,2024-02-28T23:26:00Z,9999-01-01T00:00:00Z
+Nanometrics,Titan,TitanSMA,002205,WKZ,21,0,,0,0,2024-02-20T21:06:00Z,9999-01-01T00:00:00Z
+Nanometrics,Titan,TitanSMA,002208,WBHS,21,0,,0,0,2024-02-28T23:23:00Z,9999-01-01T00:00:00Z
Nanometrics,Titan,TitanSMA,002210,TRWZ,20,0,,0,0,2023-11-23T21:52:00Z,9999-01-01T00:00:00Z
+Nanometrics,Titan,TitanSMA,002211,LTZ,21,0,,0,0,2024-02-07T01:53:00Z,9999-01-01T00:00:00Z
Physics and Engineering Laboratory DSIR,MO1,MO1,0001,027A,20,295,,0,0,1966-01-24T00:00:00Z,1971-09-16T00:00:00Z
Physics and Engineering Laboratory DSIR,MO1,MO1,0001,027A,20,295,,0,0,1971-09-16T00:00:00Z,1973-03-28T00:00:00Z
Physics and Engineering Laboratory DSIR,MO1,MO1,0001,027C,20,295,,0,0,1973-03-28T00:00:00Z,1974-11-12T00:00:00Z
diff --git a/install/sensors.csv b/install/sensors.csv
index 32181802e..0a55c013d 100644
--- a/install/sensors.csv
+++ b/install/sensors.csv
@@ -10,20 +10,22 @@ Boise State University,InfraBSU microphone,0124,WSRZ,33,0,,0,0,0,0,0,0,2018-05-2
Boise State University,InfraBSU microphone,0126,NTVZ,32,0,,0,0,0,0,0,0,2016-01-14T02:10:00Z,9999-01-01T00:00:00Z
Boise State University,InfraBSU microphone,0137,KHEZ,31,0,,0,0,0,0,0,0,2014-10-14T04:00:00Z,9999-01-01T00:00:00Z
Boise State University,InfraBSU microphone,0138,KHEZ,32,0,,0,0,0,0,0,0,2014-10-14T04:00:00Z,9999-01-01T00:00:00Z
-Boise State University,InfraBSU microphone,0147,WIZ,32,0,,0,0,0,0,0,0,2015-01-22T00:00:00Z,9999-01-01T00:00:00Z
+Boise State University,InfraBSU microphone,0147,WIZ,32,0,,0,0,0,0,0,0,2015-01-22T00:00:00Z,2023-12-01T00:00:00Z
Boise State University,InfraBSU microphone,0148,KHEZ,33,0,,0,0,0,0,0,0,2014-10-14T04:00:00Z,9999-01-01T00:00:00Z
Boise State University,InfraBSU microphone,0149,COVZ,31,0,,0,-10,0,0,0,0,2014-04-01T23:40:00Z,2015-02-23T00:00:00Z
Boise State University,InfraBSU microphone,0149,NTVZ,31,0,,0,0,0,0,0,0,2016-01-14T02:10:00Z,9999-01-01T00:00:00Z
Boise State University,InfraBSU microphone,0150,PREZ,33,0,,0,0,0,0,0,0,2014-05-14T00:01:00Z,9999-01-01T00:00:00Z
Boise State University,InfraBSU microphone,0151,PREZ,31,0,,0,0,0,0,0,0,2014-05-14T00:01:00Z,9999-01-01T00:00:00Z
Boise State University,InfraBSU microphone,0154,PREZ,32,0,,0,0,0,0,0,0,2014-05-14T00:01:00Z,9999-01-01T00:00:00Z
-Boise State University,InfraBSU microphone,0157,WIZ,31,0,,0,0,0,0,0,0,2015-01-22T00:00:00Z,9999-01-01T00:00:00Z
+Boise State University,InfraBSU microphone,0157,WIZ,31,0,,0,0,0,0,0,0,2015-01-22T00:00:00Z,2023-12-01T00:00:00Z
Boise State University,InfraBSU microphone,0160,WSRZ,32,0,,0,0,0,0,0,0,2014-11-20T02:00:00Z,2018-05-28T21:00:00Z
-Boise State University,InfraBSU microphone,0160,WSRZ,34,0,,0,0,0,0,0,0,2018-05-28T22:15:00Z,9999-01-01T00:00:00Z
+Boise State University,InfraBSU microphone,0160,WSRZ,34,0,,0,0,0,0,0,0,2018-05-28T22:15:00Z,2023-12-01T00:00:00Z
Campbell Scientific,107 temperature probe,411941,TRAR1,01,0,,0,0,0,0,0,0,2023-12-13T01:39:00Z,9999-01-01T00:00:00Z
Campbell Scientific,107 temperature probe,411942,TRAR1,02,0,,0,0,0,0,0,0,2023-12-13T03:19:00Z,9999-01-01T00:00:00Z
Campbell Scientific,107 temperature probe,411943,TRAR1,04,0,,0,0,0,0,0,0,2023-12-13T03:19:00Z,9999-01-01T00:00:00Z
Campbell Scientific,107 temperature probe,411944,TRAR1,03,0,,0,0,0,0,0,0,2023-04-18T04:00:00Z,9999-01-01T00:00:00Z
+Campbell Scientific,107 temperature probe,412277,TO003,01,0,,0,0,0,0,0,0,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+Campbell Scientific,107 temperature probe,412427,NA002,01,0,,0,0,0,0,0,0,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
Campbell Scientific,LevelVUE B10,1048,OT001,03,0,,0,0,0,0,0,0,2022-07-28T01:59:00Z,2023-04-10T23:01:00Z
Campbell Scientific,LevelVUE B10,1064,OT001,03,0,,0,0,0,0,0,0,2023-04-10T23:29:00Z,9999-01-01T00:00:00Z
Campbell Scientific,Pulse radar water-level sensor CS475A,43460111,OT001,04,0,,0,0,0,0,0,0,2019-10-11T00:50:00Z,2022-01-20T00:00:00Z
@@ -32,6 +34,10 @@ Campbell Scientific,Titanium pressure transducer CS456,14010301,RLGLK,04,0,,0,0,
Campbell Scientific,Titanium pressure transducer CS456,70010135,TOUTL,01,0,,0,0,0,0,0,0,2019-03-12T03:30:00Z,9999-01-01T00:00:00Z
Campbell Scientific,Titanium pressure transducer CS456,70010240,TOUEM,01,0,,0,0,0,0,0,0,2021-05-21T00:00:00Z,2023-03-08T00:00:00Z
Campbell Scientific,Titanium pressure transducer CS456,70010248,TOUEM,01,0,,0,0,0,0,0,0,2023-03-08T00:29:59Z,9999-01-01T00:00:00Z
+City Technology,T3H H2S sensor,01.44557167 112,TO003,14,0,,0,0,0,0,0,0,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+City Technology,T3H H2S sensor,01.44865262 112,NA002,06,0,,0,0,0,0,0,0,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
+City Technology,T3STF SO2 sensor,01.45929880 013,TO003,13,0,,0,0,0,0,0,0,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+City Technology,T3STF SO2 sensor,01.45929894 013,NA002,05,0,,0,0,0,0,0,0,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
Danish Meteorological Institute,FGE,S0257-E0299,SBAM,50,0,,0,0,0,0,0,0,2009-03-02T00:00:00Z,2023-10-22T23:59:00Z
Danish Meteorological Institute,FGE,S0263-S0308,EYWM,50,0,,0,0,0,0,0,0,2013-12-15T00:00:00Z,9999-01-01T00:00:00Z
Danish Meteorological Institute,FGE,S0330-E0397,APIM,50,0,,0,0,0,0,0,0,2011-07-25T00:00:00Z,9999-01-01T00:00:00Z
@@ -50,7 +56,7 @@ Duke University,2 Hz Duke Malin Seismometer,502,NEZ,11,0,,0,111.2,0,0,0,0,2014-0
Duke University,2 Hz Duke Malin Seismometer,503,AWAZ,10,0,,0,371,0,0,0,0,2010-12-14T01:00:00Z,9999-01-01T00:00:00Z
Duke University,2 Hz Duke Malin Seismometer,551,MBAZ,10,0,,0,96,0,0,0,0,2012-10-08T23:30:00Z,2018-05-08T22:19:00Z
Duke University,2 Hz Duke Malin Seismometer,599,NBEZ,10,0,,0,43.8,0,0,0,0,2012-10-16T00:01:00Z,9999-01-01T00:00:00Z
-Duke University,2 Hz Duke Malin Seismometer,600,MBAZ,10,0,,0,93,0,0,0,0,2018-05-08T23:50:00Z,9999-01-01T00:00:00Z
+Duke University,2 Hz Duke Malin Seismometer,600,MBAZ,10,0,,0,93,0,0,0,0,2018-05-08T23:50:00Z,2024-02-13T21:20:00Z
Duke University,2 Hz Duke Malin Seismometer,650,RVAZ,10,0,,0,250,0,0,0,0,2014-03-06T00:00:20Z,9999-01-01T00:00:00Z
Duke University,2 Hz Duke Malin Seismometer,999991,GCSZ,10,0,,0,81,0,0,0,0,2012-04-16T00:05:00Z,2013-02-03T00:00:00Z
Duke University,2 Hz Duke Malin Seismometer,GC2,GCSZ,10,0,,0,81,0,0,0,0,2013-02-03T00:10:00Z,2022-02-02T09:20:00Z
@@ -185,6 +191,8 @@ Geospace Technologies,GS-11D seismometer,167522-003,KQE,10,0,,0,0,0,0,0,0,2012-0
Geospace Technologies,GS-11D seismometer,167522-004,KQG,10,0,,0,0,0,0,0,0,2012-04-04T01:00:00Z,2017-05-04T02:00:00Z
Geospace Technologies,GS-11D seismometer,167522-005,KQD,10,0,,0,0,0,0,0,0,2012-04-04T01:00:00Z,2014-03-13T00:00:00Z
Geospace Technologies,GS-11D seismometer,167522-005,KQH,10,0,,0,0,0,0,0,0,2014-04-10T00:02:00Z,2015-11-26T00:00:00Z
+Gill Instruments,Gill WindSonic WS60 OPT4,22370069,NA002,07,0,,0,0,0,0,0,0,2024-03-21T02:10:00Z,2015-11-26T00:00:00Z
+Gill Instruments,Gill WindSonic WS60 OPT4,22490065,TO003,15,0,,0,0,0,0,0,0,2024-03-01T00:20:00Z,2015-11-26T00:00:00Z
GNS Science,LM35,T001,GLKZ,80,0,,0,0,0,0,0,0,2009-05-02T00:00:00Z,2023-01-30T20:17:32Z
GNS Science,LM35,T002,GLKZ,81,0,,0,0,0,0,0,0,2009-05-02T00:00:00Z,2023-01-30T20:17:32Z
GNS Science,SDP,A5,EDAS,22,95,,0,9.6,0,0,0,0,2008-06-11T00:00:00Z,2015-06-22T23:00:00Z
@@ -220,7 +228,7 @@ Guralp,CMG-3ESP,T3B65,NNZ,10,0,,0,0,0,0,0,0,2003-08-12T00:00:00Z,2003-10-29T01:3
Guralp,CMG-3ESP,T3B65,VRZ,10,0,,0,0,0,0,0,0,2005-02-10T03:05:02Z,2022-02-08T20:54:00Z
Guralp,CMG-3ESP,T3B66,TUZ,10,0,,0,0,0,0,0,0,2003-11-01T00:00:00Z,2021-06-10T20:58:00Z
Guralp,CMG-3ESP,T3B67,TSZ,10,42,,0,0,0,0,0,0,2004-01-26T00:00:00Z,2018-08-30T23:25:00Z
-Guralp,CMG-3ESP,T3E65,MSZ,10,0,,0,0,0,0,0,0,2005-07-19T20:00:00Z,9999-01-01T00:00:00Z
+Guralp,CMG-3ESP,T3E65,MSZ,10,0,,0,0,0,0,0,0,2005-07-19T20:00:00Z,2024-02-29T00:13:00Z
Guralp,CMG-3ESP,T3E73,MRZ,10,0,,0,0,0,0,0,0,2003-07-31T00:00:00Z,2022-08-11T22:36:00Z
Guralp,CMG-3ESP,T3E84,WCZ,10,0,,0,0,0,0,0,0,2003-08-26T00:00:00Z,2005-05-11T00:00:00Z
Guralp,CMG-3ESP,T3E84,OPRZ,10,0,,0,0,0,0,0,0,2008-11-20T03:10:00Z,9999-01-01T00:00:00Z
@@ -257,7 +265,7 @@ Guralp,CMG-3ESPC,T35861,MQZ,10,0,,0,0,0,0,0,0,2009-08-06T04:00:00Z,9999-01-01T00
Guralp,CMG-3ESPC,T35862,WHVZ,10,0,,0,0,0,0,0,0,2009-04-14T00:30:00Z,9999-01-01T00:00:00Z
Guralp,CMG-3ESPC,T35863,FWVZ,10,0,,0,0,0,0,0,0,2009-04-14T02:00:01Z,9999-01-01T00:00:00Z
Guralp,CMG-3ESPC,T35864,TRVZ,10,0,,0,0,0,0,0,0,2009-04-14T22:00:00Z,2012-05-04T00:00:00Z
-Guralp,CMG-3ESPC,T35865,WSRZ,10,0,,0,0,0,0,0,0,2013-04-08T04:00:00Z,9999-01-01T00:00:00Z
+Guralp,CMG-3ESPC,T35865,WSRZ,10,0,,0,0,0,0,0,0,2013-04-08T04:00:00Z,2023-12-01T00:00:00Z
Guralp,CMG-3ESPC,T35867,KNZ,10,0,,0,0,0,0,0,0,2009-04-27T04:00:00Z,9999-01-01T00:00:00Z
Guralp,CMG-3ESPC,T36193,HAZ,10,0,,0,0,0,0,0,0,2010-01-14T10:05:00Z,9999-01-01T00:00:00Z
Guralp,CMG-3ESPC,T36194,DUWZ,10,0,,0,0,0,0,0,0,2011-02-24T00:00:05Z,2011-12-22T22:00:00Z
@@ -272,7 +280,7 @@ Guralp,CMG-3ESPC,T36911,RATZ,10,0,,0,0,0,0,0,0,2011-11-02T03:00:00Z,9999-01-01T0
Guralp,CMG-3ESPC,T36912,RTZ,10,0,,0,0,0,0,0,0,2011-08-04T00:00:10Z,2016-09-01T21:30:00Z
Guralp,CMG-3ESPC,T36912,TSZ,10,0,,0,0,0,0,0,0,2018-08-30T23:45:00Z,9999-01-01T00:00:00Z
Guralp,CMG-3ESPC,T36913,INZ,10,0,,0,0,0,0,0,0,2011-08-02T00:00:12Z,2012-05-21T11:00:00Z
-Guralp,CMG-3ESPC,T36913,GVZ,10,0,,0,0,0,0,0,0,2012-12-04T05:00:00Z,9999-01-01T00:00:00Z
+Guralp,CMG-3ESPC,T36913,GVZ,10,0,,0,0,0,0,0,0,2012-12-04T05:00:00Z,2024-04-02T01:32:00Z
Guralp,CMG-3ESPC,T36914,OTVZ,10,0,,0,0,0,0,0,0,2011-11-11T02:00:00Z,9999-01-01T00:00:00Z
Guralp,CMG-3ESPC,T36915,KHEZ,10,0,,0,0,0,0,0,0,2012-06-13T01:30:00Z,9999-01-01T00:00:00Z
Guralp,CMG-3ESPC,T38497,ETVZ,10,0,,0,0,0,0,0,0,2014-08-26T22:30:00Z,9999-01-01T00:00:00Z
@@ -474,7 +482,7 @@ Hyquest,Tipping bucket rain gauge TB3 0.2mm,21-30,FOXRB,01,0,,0,0,0,0,0,0,2021-0
Hyquest,Tipping bucket rain gauge TB3 0.2mm,21-31,FOXVV,01,0,,0,0,0,0,0,0,2021-08-03T00:00:00Z,2022-05-27T00:00:00Z
Hyquest,Tipping bucket rain gauge TB3 0.2mm,21-32,FOXVF,01,0,,0,0,0,0,0,0,2021-11-21T11:50:00Z,9999-01-01T00:00:00Z
Hyquest,Tipping bucket rain gauge TB3 0.2mm,21-33,FOXKP,01,0,,0,0,0,0,0,0,2021-08-03T00:00:00Z,2022-05-27T00:00:00Z
-Hyquest,Tipping bucket rain gauge TB3 0.2mm,22-30,ALS1R,01,0,,0,0,0,0,0,0,2023-02-24T01:09:00Z,9999-01-01T00:00:00Z
+Hyquest,Tipping bucket rain gauge TB3 0.2mm,22-30,ALS1R,01,0,,0,0,0,0,0,0,2023-02-24T01:09:00Z,2024-02-25T13:50:01Z
Hyquest,Tipping bucket rain gauge TB3 0.2mm,22-33,ALS2R,01,0,,0,0,0,0,0,0,2023-02-23T03:59:00Z,9999-01-01T00:00:00Z
Hyquest,Tipping bucket rain gauge TB3 0.5mm,22-0043,FOXVV,01,0,,0,0,0,0,0,0,2022-05-27T00:00:01Z,9999-01-01T00:00:00Z
Hyquest,Tipping bucket rain gauge TB3 0.5mm,22-0044,FOXKP,01,0,,0,0,0,0,0,0,2022-05-27T00:00:01Z,2023-12-25T03:51:00Z
@@ -489,7 +497,6 @@ Intech,Platinum resistance thermometer,001,OT001,01,0,,0,0,0,0,0,0,2017-12-06T00
Intech,Platinum resistance thermometer,002,TO006,03,0,,0,0,0,0,0,0,2018-08-28T00:30:00Z,2019-03-31T20:30:00Z
Intech,Platinum resistance thermometer,003,TO006,02,0,,0,0,0,0,0,0,2018-10-08T23:50:00Z,2019-03-31T20:30:00Z
Intech,Platinum resistance thermometer,004,TOUTL,02,0,,0,0,0,0,0,0,2019-03-12T03:30:00Z,9999-01-01T00:00:00Z
-Kinemetrics,EpiSensor 2,185,WEL,21,0,,0,0,0,0,0,0,2016-04-26T03:10:00Z,2016-08-29T03:00:00Z
Kinemetrics,FBA-23,25073,WEL,20,0,,0,0,0,0,0,0,1990-10-03T03:04:00Z,2003-04-08T00:00:00Z
Kinemetrics,FBA-23,25073,WEL,21,0,,0,0,0,0,0,0,2003-04-08T00:00:01Z,2003-09-19T23:10:00Z
Kinemetrics,FBA-23,45577,KNZ,20,0,,0,0,0,0,0,0,1998-10-19T00:00:02Z,1999-12-15T22:30:00Z
@@ -594,7 +601,8 @@ Kinemetrics,FBA-ES-T-ISO,7457,RIZ,20,0,,0,0,0,0,0,0,2019-09-21T04:55:00Z,2023-01
Kinemetrics,FBA-ES-T-ISO,7458,WAKS,20,0,,0,0,0,0,0,0,2019-09-10T02:50:00Z,2021-05-25T20:54:00Z
Kinemetrics,SBEPI,450,RCBS,21,0,,0,39.518,0,0,0,0,2013-01-29T01:00:00Z,9999-01-01T00:00:00Z
Kinemetrics,SBEPI,451,RHBS,21,0,,0,74,0,0,0,0,2013-01-30T00:00:01Z,2015-09-22T00:30:00Z
-Lennartz Electronic,LE-3D-BH-MkIII,J-227,KBAZ,10,360,,0,160,0,0,0,0,2023-11-01T03:09:00Z,9999-01-01T00:00:00Z
+Lennartz Electronic,LE-3D-BH-MkIII,J-227,KBAZ,10,360,,0,160,0,0,0,0,2023-11-01T03:09:00Z,2023-11-21T04:26:00Z
+Lennartz Electronic,LE-3D-BH-MkIII,J-227,MBAZ,10,0,,0,93,0,0,0,0,2024-02-13T23:14:00Z,9999-01-01T00:00:00Z
Lennartz Electronic,LE-3Dlite,148,LBST,10,0,,0,0,0,0,0,0,2001-01-29T02:47:00Z,2001-03-28T17:40:00Z
Lennartz Electronic,LE-3Dlite,190,LTIM,10,0,,0,0,0,0,0,0,2001-01-24T04:04:00Z,2001-05-25T14:05:00Z
Lennartz Electronic,LE-3Dlite,191,LROS,10,0,,0,0,0,0,0,0,2001-01-28T01:45:00Z,2001-05-30T15:15:00Z
@@ -786,14 +794,17 @@ Lennartz Electronic,LE-3DliteMkIII,J-0937,POWZ,10,0,,0,0,0,0,0,0,2023-12-12T22:3
Lennartz Electronic,LE-3DliteMkIII,J-0940,NMHZ,10,0,,0,0,0,0,0,0,2023-09-14T04:09:00Z,9999-01-01T00:00:00Z
Lennartz Electronic,LE-3DliteMkIII,J-0941,GRRZ,10,0,,0,0,0,0,0,0,2023-09-12T03:04:00Z,9999-01-01T00:00:00Z
Lennartz Electronic,LE-3DliteMkIII,J-0942,TRWZ,10,0,,0,0,0,0,0,0,2023-11-23T21:52:00Z,9999-01-01T00:00:00Z
+Lennartz Electronic,LE-3DliteMkIII,J-0943,PLWZ,10,0,,0,0,0,0,0,0,2024-04-03T00:19:00Z,9999-01-01T00:00:00Z
Lennartz Electronic,LE-3DliteMkIII,J-0946,HOWZ,10,0,,0,0,0,0,0,0,2023-12-20T00:07:00Z,9999-01-01T00:00:00Z
+Licor,Li-850 CO2/H2O Gas Analyzer,HGA-06812,NA002,04,0,,0,0,0,0,0,0,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
+Licor,Li-850 CO2/H2O Gas Analyzer,HGA-06920,TO003,12,0,,0,0,0,0,0,0,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
Nanometrics,Titan TACCL-BH1,2363,CBGS,22,0,,0,21.8,0,0,0,0,2023-02-23T03:16:00Z,9999-01-01T00:00:00Z
Nanometrics,Titan TACCL-N1,2590,CBGS,21,0,,0,0,0,0,0,0,2023-02-23T03:16:00Z,9999-01-01T00:00:00Z
Nanometrics,Trillium 120PA,730,WEL,11,0,,0,0,0,0,0,0,2014-11-03T02:10:00Z,2015-03-24T00:00:00Z
Nanometrics,Trillium 120QA,2188,INZ,10,0,,0,0,0,0,0,0,2015-05-28T06:10:00Z,9999-01-01T00:00:00Z
Nanometrics,Trillium 120QA,2196,RTZ,10,0,,0,0,0,0,0,0,2016-09-01T21:45:00Z,9999-01-01T00:00:00Z
Nanometrics,Trillium 120QA,2432,GLKZ,10,0,,0,0,0,0,0,0,2016-09-17T14:00:01Z,9999-01-01T00:00:00Z
-Nanometrics,Trillium 120QA,2434,WIZ,10,0,,0,0,0,0,0,0,2016-09-13T01:50:00Z,9999-01-01T00:00:00Z
+Nanometrics,Trillium 120QA,2434,WIZ,10,0,,0,0,0,0,0,0,2016-09-13T01:50:00Z,2023-12-01T00:00:00Z
Nanometrics,Trillium 120QA,2485,RIZ,10,0,,0,0,0,0,0,0,2019-09-21T04:55:00Z,9999-01-01T00:00:00Z
Nanometrics,Trillium 120QA,2490,TMVZ,10,0,,0,0,0,0,0,0,2018-05-02T22:00:00Z,9999-01-01T00:00:00Z
Nanometrics,Trillium 120QA,3063,OUZ,10,0,,0,0,0,0,0,0,2021-01-14T07:40:00Z,9999-01-01T00:00:00Z
@@ -833,6 +844,7 @@ Nanometrics,Trillium Compact 120,619,HD64,10,0,,0,0,0,0,0,0,2017-04-18T00:00:02Z
Nanometrics,Trillium Compact 120PH-2,3816,BHW,10,0,,0,0.7,0,0,0,0,2016-07-15T02:32:00Z,2020-07-15T01:01:00Z
Nanometrics,Trillium Compact 120PH-2,3816,PNUZ,10,0,,0,1.2,0,0,0,0,2023-05-11T22:07:00Z,9999-01-01T00:00:00Z
Nanometrics,Trillium Compact 120PH-2,3872,COVZ,10,335,,0,64,0,0,0,0,2016-04-07T03:30:00Z,2022-06-09T02:11:00Z
+Nanometrics,Trillium Compact 120PH-2,6637,NEZ,12,0,,0,15,0,0,0,0,2024-02-28T00:10:00Z,9999-01-01T00:00:00Z
Nanometrics,Trillium Compact 120PH-2,6638,HNCZ,10,340,,0,1.2,0,0,0,0,2023-08-23T23:19:00Z,9999-01-01T00:00:00Z
Nanometrics,Trillium Compact 120PH-2,8330,LRRZ,10,0,,0,1.2,0,0,0,0,2023-03-19T22:28:00Z,9999-01-01T00:00:00Z
Nanometrics,Trillium Compact 120PH-2,8332,KPFZ,10,0,,0,1.2,0,0,0,0,2023-03-17T03:00:00Z,9999-01-01T00:00:00Z
@@ -845,7 +857,7 @@ Nanometrics,Trillium Compact 120PH-2,9203,FEGZ,10,284,,0,10,0,0,0,0,2023-04-30T2
Nanometrics,Trillium Compact 120PH-2,9205,WTAZ,13,36,,0,90,0,0,0,0,2023-04-12T03:28:00Z,2023-06-19T23:27:00Z
Nanometrics,Trillium Compact 120PH-2,9282,MWOZ,10,354,,0,10,0,0,0,0,2023-04-18T03:01:00Z,9999-01-01T00:00:00Z
Nanometrics,Trillium Compact 120PH-2,9284,MBAZ,11,0,,0,0.5,0,0,0,0,2023-07-07T01:19:00Z,9999-01-01T00:00:00Z
-Nanometrics,Trillium Compact 120PH-2,9312,NEZ,12,0,,0,20,0,0,0,0,2023-02-28T22:51:00Z,9999-01-01T00:00:00Z
+Nanometrics,Trillium Compact 120PH-2,9312,NEZ,12,0,,0,20,0,0,0,0,2023-02-28T22:51:00Z,2023-03-19T06:29:00Z
Nanometrics,Trillium Compact 120PH-2,9313,WHSZ,11,39,,0,293,0,0,0,0,2023-07-04T23:47:00Z,9999-01-01T00:00:00Z
Nanometrics,Trillium Compact 120PH-2,9328,MNMZ,10,145,,0,10,0,0,0,0,2023-09-14T22:37:00Z,9999-01-01T00:00:00Z
Nanometrics,Trillium Compact 120PH-2,9329,HATZ,10,0,,0,0,0,0,0,0,2023-10-04T00:47:00Z,9999-01-01T00:00:00Z
@@ -894,7 +906,9 @@ Nanometrics,Trillium Horizon TH120-2,2584,PYZ,10,0,,0,0,0,0,0,0,2023-06-13T01:51
Nanometrics,Trillium Horizon TH120-2,2692,MKAZ,10,0,,0,0,0,0,0,0,2022-12-08T00:35:00Z,9999-01-01T00:00:00Z
Nanometrics,Trillium Horizon TH120-2,2745,TLZ,10,0,,0,0,0,0,0,0,2022-10-06T22:37:00Z,9999-01-01T00:00:00Z
Nanometrics,Trillium Horizon TH120-2,2836,TOZ,10,0,,0,0,0,0,0,0,2023-05-14T21:37:00Z,9999-01-01T00:00:00Z
+Nanometrics,Trillium Horizon TH120-2,2837,MSZ,10,0,,0,0,0,0,0,0,2024-02-29T01:22:00Z,9999-01-01T00:00:00Z
Nanometrics,Trillium Horizon TH120-2,2838,NNZ,10,0,,0,0,0,0,0,0,2023-03-29T18:00:00Z,9999-01-01T00:00:00Z
+Nanometrics,Trillium Horizon TH120-2,3356,GVZ,10,0,,0,0,0,0,0,0,2024-04-02T03:10:00Z,9999-01-01T00:00:00Z
OTT Hydromet,Compact Bubbler Sensor USGS model,002,RU001,01,0,,0,0,0,0,0,0,2018-05-03T03:50:00Z,9999-01-01T00:00:00Z
OTT Hydromet,Compact Bubbler Sensor USGS model,407895,OT013,02,0,,0,0,0,0,0,0,2021-03-17T22:20:00Z,9999-01-01T00:00:00Z
OTT Hydromet,Compact Bubbler Sensor USGS model,422837,OT001,03,0,,0,0,0,0,0,0,2017-12-06T00:30:00Z,2021-10-12T23:50:00Z
@@ -906,7 +920,7 @@ Phoenix,PE5 SP Electrode,55866,TO003,09,0,,0,0,0,0,0,0,2022-06-21T23:10:00Z,9999
Pronamic,Rainomatic rain gauge 1mm,001,FOXAG,02,0,,0,0,0,0,0,0,2019-02-06T13:10:00Z,9999-01-01T00:00:00Z
Pronamic,Rainomatic rain gauge 1mm,002,TRAR1,06,0,,0,0,0,0,0,0,2022-09-07T03:50:00Z,9999-01-01T00:00:00Z
Pronamic,Rainomatic rain gauge 1mm,003,ALS2R,02,0,,0,0,0,0,0,0,2023-02-23T03:59:00Z,9999-01-01T00:00:00Z
-Pronamic,Rainomatic rain gauge 1mm,004,ALS1R,02,0,,0,0,0,0,0,0,2023-02-24T01:09:00Z,9999-01-01T00:00:00Z
+Pronamic,Rainomatic rain gauge 1mm,004,ALS1R,02,0,,0,0,0,0,0,0,2023-02-24T01:09:00Z,2024-02-25T13:50:01Z
Sensonics,SENSONICS-SP3,HUTZ_TPN,HUTZ,10,0,,0,78,0,0,0,0,1987-03-06T15:41:00Z,1989-10-06T10:13:00Z
Sensonics,SENSONICS-SP3,OH1_TPN,OH1,10,0,,0,58,0,0,0,0,1987-07-15T06:26:00Z,1992-10-30T03:02:00Z
Sensonics,SENSONICS-SP3,OH2_TPN,OH2,10,0,,0,58,0,0,0,0,1987-07-23T21:09:00Z,1992-10-30T03:02:00Z
@@ -1194,7 +1208,7 @@ Sercel,L4C-3D,2986,TMWZ,10,0,,0,0,0,0,0,0,2007-09-11T12:30:00Z,9999-01-01T00:00:
Sercel,L4C-3D,2987,LIRZ,10,0,,0,0,0,0,0,0,2006-02-15T12:00:00Z,9999-01-01T00:00:00Z
Sercel,L4C-3D,2988,OMRZ,10,0,,0,0,0,0,0,0,2007-04-04T01:00:00Z,9999-01-01T00:00:00Z
Sercel,L4C-3D,2989,ARAZ,10,0,,0,0,0,0,0,0,2007-05-20T23:00:00Z,2023-08-09T00:03:00Z
-Sercel,L4C-3D,2990,PLWZ,10,0,,0,0,0,0,0,0,2007-04-18T00:00:02Z,9999-01-01T00:00:00Z
+Sercel,L4C-3D,2990,PLWZ,10,0,,0,0,0,0,0,0,2007-04-18T00:00:02Z,2024-04-02T22:49:00Z
Sercel,L4C-3D,2991,PRGZ,10,0,,0,0,0,0,0,0,2007-08-02T00:01:00Z,2023-06-26T07:59:00Z
Sercel,L4C-3D,2992,TUWZ,10,0,,0,0,0,0,0,0,2006-11-21T03:00:00Z,2022-09-01T02:50:00Z
Sercel,L4C-3D,2993,CNGZ,10,44,,0,4,0,0,0,0,2007-08-04T00:01:00Z,2007-08-21T00:35:00Z
@@ -1606,12 +1620,12 @@ Servotech,T16 Type K thermocouple probe 100mm,003,RU001,02,0,,0,0,0,0,0,0,2019-0
Servotech,T16 Type K thermocouple probe 100mm,004,TO006,02,0,,0,0,0,0,0,0,2019-04-16T22:50:00Z,9999-01-01T00:00:00Z
Servotech,T16 Type K thermocouple probe 100mm,005,TO006,03,0,,0,0,0,0,0,0,2019-04-16T22:50:00Z,9999-01-01T00:00:00Z
Servotech,T16 Type K thermocouple probe 100mm,006,TO015,02,0,,0,0,0,0,0,0,2018-08-10T00:00:00Z,9999-01-01T00:00:00Z
-Servotech,T16 Type K thermocouple probe 100mm,007,WI227,02,0,,0,0,0,0,0,0,2019-04-10T01:40:00Z,9999-01-01T00:00:00Z
-Servotech,T16 Type K thermocouple probe 100mm,008,WI227,03,0,,0,0,0,0,0,0,2019-06-17T23:40:00Z,9999-01-01T00:00:00Z
+Servotech,T16 Type K thermocouple probe 100mm,007,WI227,02,0,,0,0,0,0,0,0,2019-04-10T01:40:00Z,2023-12-01T00:00:00Z
+Servotech,T16 Type K thermocouple probe 100mm,008,WI227,03,0,,0,0,0,0,0,0,2019-06-17T23:40:00Z,2023-12-01T00:00:00Z
Servotech,T16 Type K thermocouple probe 100mm,J343357A,OT013,01,0,,0,0,0,0,0,0,2021-03-17T22:20:00Z,9999-01-01T00:00:00Z
-Servotech,T16 Type K thermocouple probe 100mm,J343696A,NA002,01,0,,0,0,0,0,0,0,2021-05-06T04:00:00Z,9999-01-01T00:00:00Z
+Servotech,T16 Type K thermocouple probe 100mm,J343696A,NA002,01,0,,0,0,0,0,0,0,2021-05-06T04:00:00Z,2024-03-20T22:59:00Z
Servotech,T16 Type K thermocouple probe 100mm,J343696B,TO015,01,0,,0,0,0,0,0,0,2021-11-19T00:30:00Z,9999-01-01T00:00:00Z
-Servotech,T16 Type K thermocouple probe 100mm,J343696C,TO003,01,0,,0,0,0,0,0,0,2021-05-27T04:40:00Z,9999-01-01T00:00:00Z
+Servotech,T16 Type K thermocouple probe 100mm,J343696C,TO003,01,0,,0,0,0,0,0,0,2021-05-27T04:40:00Z,2024-02-29T21:50:00Z
Servotech,T16 Type K thermocouple probe 100mm,J343696D,TO063,01,0,,0,0,0,0,0,0,2021-05-07T00:00:00Z,2023-03-13T00:00:00Z
Servotech,T16 Type K thermocouple probe 100mm,J343696E,TO006,01,0,,0,0,0,0,0,0,2021-11-19T00:00:00Z,9999-01-01T00:00:00Z
Servotech,T16 Type K thermocouple probe 100mm,J343696F,TOUEM,02,0,,0,0,0,0,0,0,2021-05-21T00:00:00Z,2023-03-08T00:00:00Z
@@ -1642,7 +1656,7 @@ Servotech,T16-j-K-3X100-F-5M WK21-TAILS,J345723B,TRAR1,01,0,,0,0,0,0,0,0,2022-09
Servotech,T16-j-K-3X100-F-5M WK21-TAILS,J346594A,TOUEM,02,0,,0,0,0,0,0,0,2023-03-08T00:29:59Z,9999-01-01T00:00:00Z
Servotech,T16-j-K-3X100-F-5M WK21-TAILS,J346594C,TO063,01,0,,0,0,0,0,0,0,2023-03-14T01:00:00Z,9999-01-01T00:00:00Z
Setra,270-600/12V,1351372,FWVZ,30,0,,0,0,0,0,0,0,2001-07-05T01:30:00Z,2008-02-07T01:00:00Z
-Setra,270-600/12V,1456230,WIZ,30,0,,0,0,0,0,0,0,2002-11-28T22:23:00Z,9999-01-01T00:00:00Z
+Setra,270-600/12V,1456230,WIZ,30,0,,0,0,0,0,0,0,2002-11-28T22:23:00Z,2023-12-01T00:00:00Z
Setra,270-600/12V,3794081,WHVZ,30,0,,0,0,0,0,0,0,2009-03-25T04:00:00Z,2010-11-12T00:00:00Z
Setra,270-600/12V,3794082,TRVZ,30,0,,0,0,0,0,0,0,2009-04-14T22:15:00Z,9999-01-01T00:00:00Z
Setra,270-600/12V,3794083,TOVZ,30,0,,0,0,0,0,0,0,2009-02-11T04:00:00Z,9999-01-01T00:00:00Z
@@ -1659,7 +1673,7 @@ Setra,270-600/12V,6493018,MAVZ,30,0,,0,0,0,0,0,0,2015-01-09T00:01:00Z,9999-01-01
Setra,270-600/12V,6493019,WNVZ,30,0,,0,0,0,0,0,0,2017-05-31T19:00:00Z,9999-01-01T00:00:00Z
Setra,270-600/12V,6493020,NTVZ,30,0,,0,0,0,0,0,0,2016-01-14T02:10:00Z,9999-01-01T00:00:00Z
Setra,270-600/12V,7096687,WHVZ,30,0,,0,0,0,0,0,0,2019-01-09T01:00:00Z,9999-01-01T00:00:00Z
-Setra,270-600/12V,7096688,WSRZ,30,0,,0,0,0,0,0,0,2017-06-02T00:30:00Z,9999-01-01T00:00:00Z
+Setra,270-600/12V,7096688,WSRZ,30,0,,0,0,0,0,0,0,2017-06-02T00:30:00Z,2023-12-01T00:00:00Z
Setra,270-600/12V,7465541,SNVZ,30,0,,0,0,0,0,0,0,2020-02-20T04:50:00Z,9999-01-01T00:00:00Z
Setra,270-600/12V,7465542,NOVZ,30,0,,0,0,0,0,0,0,2020-02-25T01:10:00Z,9999-01-01T00:00:00Z
Setra,270-600/24V,2261015,GNSW,31,0,,0,0,0,0,0,0,2006-08-31T00:00:02Z,2007-01-24T01:00:00Z
diff --git a/install/sessions.csv b/install/sessions.csv
index 76fbf3679..2f21a1afb 100644
--- a/install/sessions.csv
+++ b/install/sessions.csv
@@ -36,7 +36,8 @@ AVLN,GeoNet,GNS,TRIMBLE ALLOY,GPS+GLO+GAL+BDS+QZSS,30s,0,geonet,trimble_netr9 x4
BHST,GeoNet,GNS,TRIMBLE NETRS,GPS,30s,4,geonet,trimble_5700 x4,2008-06-12T00:05:00Z,2015-07-21T00:24:27Z
BHST,GeoNet,GNS,TRIMBLE NETR9,GPS+GLO,30s,0,geonet,trimble_netr9 x4,2015-07-21T00:24:29Z,9999-01-01T00:00:00Z
BIRF,GeoNet,GNS,TRIMBLE NETRS,GPS,30s,4,geonet,trimble_5700 x4,2005-01-22T00:00:00Z,2015-10-08T01:00:00Z
-BIRF,GeoNet,GNS,TRIMBLE NETR9,GPS+GLO,30s,0,geonet,trimble_netr9 x4,2015-10-08T01:25:08Z,9999-01-01T00:00:00Z
+BIRF,GeoNet,GNS,TRIMBLE NETR9,GPS+GLO,30s,0,geonet,trimble_netr9 x4,2015-10-08T01:25:08Z,2024-03-13T00:09:37Z
+BIRF,GeoNet,GNS,TRIMBLE ALLOY,GPS+GLO,30s,0,geonet,trimble_netr9 x4,2024-03-13T00:09:38Z,9999-01-01T00:00:00Z
BLUF,GeoNet,GNS,TRIMBLE NETRS,GPS,30s,4,linz,trimble_5700 x4,2004-03-11T00:00:00Z,2010-11-25T04:42:00Z
BLUF,GeoNet,GNS,TRIMBLE NETR9,GPS+GLO,30s,3,linz,trimble_netr9 x4,2010-11-25T05:05:01Z,2015-08-23T15:25:00Z
BLUF,GeoNet,GNS,TRIMBLE NETR9,GPS+GLO,30s,0,linz,trimble_netr9 x4,2015-08-23T15:25:01Z,2016-05-10T17:16:44Z
@@ -470,9 +471,9 @@ RGUT,GeoNet,GNS,TRIMBLE NETR9,GPS+GLO,30s,0,geonet,trimble_netr9 x4,2018-04-16T2
RGUT,GeoNet,GNS,TRIMBLE NETR9,GPS+GLO+GAL+BDS+QZSS,30s,0,geonet,trimble_netr9 x4,2019-03-07T20:32:46Z,2019-12-16T22:11:25Z
RGUT,GeoNet,GNS,TRIMBLE ALLOY,GPS+GLO+GAL+BDS+QZSS,30s,0,geonet,trimble_netr9 x4,2019-12-16T22:11:26Z,9999-01-01T00:00:00Z
RGWC,GeoNet,GNS,TRIMBLE NETR9,GPS+GLO,30s,3,geonet,trimble_netr9 x4,2014-01-29T01:57:08Z,2016-04-22T02:05:42Z
-RGWC,GeoNet,GNS,TRIMBLE NETR9,GPS+GLO,30s,0,geonet,trimble_netr9 x4,2016-04-22T02:05:43Z,9999-01-01T00:00:00Z
+RGWC,GeoNet,GNS,TRIMBLE NETR9,GPS+GLO,30s,0,geonet,trimble_netr9 x4,2016-04-22T02:05:43Z,2023-12-01T00:00:00Z
RGWI,GeoNet,GNS,TRIMBLE NETR9,GPS+GLO,30s,3,geonet,trimble_netr9 x4,2011-09-27T22:35:00Z,2016-04-20T01:24:41Z
-RGWI,GeoNet,GNS,TRIMBLE NETR9,GPS+GLO,30s,0,geonet,trimble_netr9 x4,2016-04-20T01:24:42Z,9999-01-01T00:00:00Z
+RGWI,GeoNet,GNS,TRIMBLE NETR9,GPS+GLO,30s,0,geonet,trimble_netr9 x4,2016-04-20T01:24:42Z,2023-12-01T00:00:00Z
RGWV,GeoNet,GNS,TRIMBLE NETRS,GPS,30s,4,geonet,trimble_5700 x4,2009-09-04T01:38:00Z,2017-01-10T00:19:01Z
RGWV,GeoNet,GNS,TRIMBLE NETR9,GPS+GLO,30s,0,geonet,trimble_netr9 x4,2017-01-10T00:19:02Z,9999-01-01T00:00:00Z
RIPA,GeoNet,GNS,TRIMBLE NETRS,GPS,30s,4,geonet,trimble_5700 x4,2004-02-20T00:00:00Z,2016-01-26T21:51:30Z
diff --git a/install/streams.csv b/install/streams.csv
index 550474b9b..44d6026a6 100644
--- a/install/streams.csv
+++ b/install/streams.csv
@@ -25,8 +25,8 @@ AKUS,20,B,N,50,true,false,false,2014-08-19T02:01:00Z,2017-02-16T01:00:00Z
AKUS,20,H,N,200,true,false,true,2002-06-19T00:00:00Z,2017-02-16T01:00:00Z
ALLC,10,S,H,50,false,false,true,2001-02-13T16:17:00Z,2001-07-07T18:55:00Z
ALRZ,10,E,H,100,false,false,false,2007-11-07T02:00:00Z,9999-01-01T00:00:00Z
-ALS1R,01,,,-600,false,false,false,2023-02-24T01:09:00Z,9999-01-01T00:00:00Z
-ALS1R,02,,,-600,false,false,false,2023-02-24T01:09:00Z,9999-01-01T00:00:00Z
+ALS1R,01,,,-600,false,false,false,2023-02-24T01:09:00Z,2024-02-25T13:50:01Z
+ALS1R,02,,,-600,false,false,false,2023-02-24T01:09:00Z,2024-02-25T13:50:01Z
ALS2R,01,,,-600,false,false,false,2023-02-23T03:59:00Z,9999-01-01T00:00:00Z
ALS2R,02,,,-600,false,false,false,2023-02-23T03:59:00Z,9999-01-01T00:00:00Z
AMBC,20,B,N,50,true,false,false,2010-03-25T01:00:00Z,2020-06-16T00:00:00Z
@@ -683,6 +683,10 @@ FOXVF,03,,,-600,false,false,false,2021-11-24T00:00:00Z,9999-01-01T00:00:00Z
FOXVF,04,,,-600,false,false,false,2021-11-24T00:00:00Z,9999-01-01T00:00:00Z
FOXVF,05,,,-600,false,false,false,2022-02-23T00:00:00Z,9999-01-01T00:00:00Z
FOXVF,06,,,-600,false,false,false,2023-02-09T03:39:59Z,9999-01-01T00:00:00Z
+FOXVV,01,,,-600,false,false,false,2021-08-03T00:00:00Z,9999-01-01T00:00:00Z
+FOXVV,03,,,-600,false,false,false,2021-08-03T00:00:00Z,9999-01-01T00:00:00Z
+FOXVV,04,,,-600,false,false,false,2022-01-25T00:00:00Z,9999-01-01T00:00:00Z
+FOXVV,05,,,-600,false,false,false,2022-01-25T00:00:00Z,9999-01-01T00:00:00Z
FOZ,10,V,H,0.1,false,false,false,2004-10-13T00:00:00Z,2015-09-22T18:00:00Z
FOZ,10,L,H,1,false,false,false,2004-10-13T00:00:00Z,2015-09-22T18:00:00Z
FOZ,10,H,H,100,false,false,false,2004-10-13T00:00:00Z,2015-09-22T18:00:00Z
@@ -705,7 +709,8 @@ FWVZ,30,L,D,1,false,false,false,2001-07-05T01:30:00Z,9999-01-01T00:00:00Z
FWVZ,30,B,D,40,false,false,false,2001-07-05T01:30:00Z,2004-09-12T23:00:30Z
FWVZ,30,H,D,100,false,false,false,2001-07-05T01:30:00Z,9999-01-01T00:00:00Z
FXBS,20,B,N,50,true,false,false,2014-05-16T03:17:00Z,2020-06-16T00:00:00Z
-FXBS,20,H,N,200,true,false,true,2004-11-05T00:00:00Z,9999-01-01T00:00:00Z
+FXBS,20,H,N,200,true,false,true,2004-11-05T00:00:00Z,2020-02-08T23:59:59Z
+FXBS,20,H,N,200,true,false,false,2020-02-09T00:00:00Z,9999-01-01T00:00:00Z
GBIH,41,H,D,200,false,false,false,2007-06-12T00:00:00Z,9999-01-01T00:00:00Z
GBIH,42,H,D,200,false,false,false,2007-06-12T00:00:00Z,9999-01-01T00:00:00Z
GBIH,43,H,D,200,false,false,false,2007-06-12T00:00:00Z,9999-01-01T00:00:00Z
@@ -1028,7 +1033,7 @@ KARV,10,S,H,50,false,false,true,1995-09-28T13:38:00Z,1995-10-20T15:08:00Z
KARZ,10,E,H,100,false,false,false,2006-07-11T01:00:00Z,9999-01-01T00:00:00Z
KATZ,10,E,H,100,false,false,false,2003-04-29T04:00:00Z,9999-01-01T00:00:00Z
KAVZ,10,E,H,100,false,false,false,2004-12-03T22:00:00Z,2004-12-14T19:00:00Z
-KBAZ,10,E,H,100,true,false,false,2008-11-11T00:00:01Z,9999-01-01T00:00:00Z
+KBAZ,10,E,H,100,true,false,false,2008-11-11T00:00:01Z,2023-11-21T04:26:00Z
KBFF,10,S,H,50,false,false,true,1993-08-14T01:47:00Z,1993-08-15T20:56:00Z
KEKM,10,S,H,50,false,false,true,1993-10-18T11:49:00Z,1994-03-12T21:52:00Z
KEKS,10,E,H,100,false,false,false,2013-07-24T00:00:10Z,2013-07-24T00:00:15Z
@@ -1297,7 +1302,8 @@ MLZ,20,H,N,200,false,false,true,2003-09-08T00:00:00Z,2014-03-25T00:00:00Z
MLZ,21,B,N,50,true,false,false,2014-03-25T00:05:00Z,2019-10-31T21:33:00Z
MLZ,21,B,N,50,false,false,false,2019-10-31T21:34:00Z,2020-06-16T00:00:00Z
MLZ,21,H,N,200,true,false,true,2014-03-25T00:05:00Z,2019-10-31T21:33:00Z
-MLZ,21,H,N,200,false,false,true,2019-10-31T21:34:00Z,9999-01-01T00:00:00Z
+MLZ,21,H,N,200,false,false,true,2019-10-31T21:34:00Z,2020-02-08T23:59:59Z
+MLZ,21,H,N,200,false,false,false,2020-02-09T00:00:00Z,9999-01-01T00:00:00Z
MMCS,20,B,N,50,true,false,false,2014-11-04T03:01:00Z,2019-11-07T21:31:00Z
MMCS,20,H,N,200,true,false,true,2002-06-26T05:00:00Z,2019-11-07T21:31:00Z
MMCS,21,B,N,50,true,false,false,2019-11-07T23:44:00Z,2020-06-16T00:00:00Z
@@ -1427,6 +1433,10 @@ MYRZ,10,E,H,100,false,false,false,2006-02-13T00:00:01Z,9999-01-01T00:00:00Z
NA002,01,,,-600,false,false,false,2021-05-06T04:00:00Z,9999-01-01T00:00:00Z
NA002,02,,,-600,false,false,false,2021-05-06T04:00:00Z,9999-01-01T00:00:00Z
NA002,03,,,-600,false,false,false,2021-05-06T04:00:00Z,9999-01-01T00:00:00Z
+NA002,04,,,-600,false,false,false,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
+NA002,05,,,-600,false,false,false,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
+NA002,06,,,-600,false,false,false,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
+NA002,07,,,-600,false,false,false,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
NAAF,10,S,H,50,false,false,true,1993-08-14T23:24:00Z,1993-08-17T17:55:00Z
NAAS,20,B,N,50,true,false,false,2012-10-10T02:00:00Z,2020-06-16T00:00:00Z
NAAS,20,H,N,200,true,false,true,2012-10-10T02:00:00Z,9999-01-01T00:00:00Z
@@ -1469,6 +1479,7 @@ NEZ,10,E,H,100,false,false,false,2010-06-02T06:00:00Z,2010-06-07T23:30:00Z
NEZ,10,E,H,100,false,false,false,2014-03-20T00:01:00Z,2014-05-05T00:00:00Z
NEZ,10,E,H,100,false,false,false,2020-01-31T05:44:00Z,2023-02-28T22:51:00Z
NEZ,11,E,H,100,true,false,false,2010-06-07T23:35:00Z,2020-01-30T05:08:00Z
+NEZ,12,L,H,1,true,false,false,2023-02-28T22:51:00Z,9999-01-01T00:00:00Z
NEZ,12,H,H,100,true,false,false,2023-02-28T22:51:00Z,9999-01-01T00:00:00Z
NEZ,30,L,D,1,false,false,false,2014-03-21T00:00:02Z,9999-01-01T00:00:00Z
NEZ,30,H,D,100,false,false,false,2014-03-21T00:00:02Z,9999-01-01T00:00:00Z
@@ -1543,36 +1554,66 @@ NTVZ,32,H,D,100,false,false,false,2016-01-14T02:10:00Z,9999-01-01T00:00:00Z
NWEZ,10,E,H,100,false,false,false,2008-01-22T19:00:01Z,2012-10-16T00:00:00Z
NWFS,20,B,N,50,true,false,false,2014-10-31T00:10:00Z,2020-06-16T00:00:00Z
NWFS,20,H,N,200,true,false,true,2006-05-05T02:01:00Z,9999-01-01T00:00:00Z
+NZA,40,W,T,-900,false,false,false,2019-12-21T17:00:00Z,2021-12-17T01:00:00Z
NZA,40,U,T,-15,false,false,false,2019-12-21T17:00:00Z,2021-12-17T01:00:00Z
+NZA,41,W,T,-900,false,false,false,2021-12-18T00:00:00Z,2023-12-15T00:00:00Z
NZA,41,U,T,-15,false,false,false,2021-12-18T00:00:00Z,2023-12-15T00:00:00Z
+NZA,42,W,T,-900,false,false,false,2023-12-15T00:15:00Z,9999-01-01T00:00:00Z
NZA,42,U,T,-15,false,false,false,2023-12-15T00:15:00Z,9999-01-01T00:00:00Z
NZAS,20,H,N,200,true,false,true,2008-10-08T22:00:00Z,2015-06-30T23:59:59Z
+NZB,40,W,T,-900,false,false,false,2020-09-18T21:12:30Z,2022-08-14T22:59:45Z
NZB,40,U,T,-15,false,false,false,2020-09-18T21:12:30Z,2022-08-14T22:59:45Z
+NZB,41,W,T,-900,false,false,false,2022-08-15T20:15:00Z,2023-12-06T00:00:00Z
NZB,41,U,T,-15,false,false,false,2022-08-15T20:15:00Z,2023-12-06T00:00:00Z
+NZB,42,W,T,-900,false,false,false,2023-12-07T14:15:00Z,9999-01-01T00:00:00Z
NZB,42,U,T,-15,false,false,false,2023-12-07T14:15:00Z,9999-01-01T00:00:00Z
+NZC,40,W,T,-900,false,false,false,2019-12-12T18:00:00Z,2021-12-10T01:00:00Z
NZC,40,U,T,-15,false,false,false,2019-12-12T18:00:00Z,2021-12-10T01:00:00Z
+NZC,41,W,T,-900,false,false,false,2021-12-11T00:00:00Z,2023-12-08T00:00:00Z
NZC,41,U,T,-15,false,false,false,2021-12-11T00:00:00Z,2023-12-08T00:00:00Z
+NZC,42,W,T,-900,false,false,false,2023-12-09T01:15:00Z,9999-01-01T00:00:00Z
NZC,42,U,T,-15,false,false,false,2023-12-09T01:15:00Z,9999-01-01T00:00:00Z
+NZD,40,W,T,-900,false,false,false,2021-07-23T00:00:00Z,2023-06-11T18:00:00Z
NZD,40,U,T,-15,false,false,false,2021-07-23T00:00:00Z,2023-06-11T18:00:00Z
+NZD,41,U,T,-900,false,false,false,2023-06-13T21:15:00Z,9999-01-01T00:00:00Z
NZD,41,U,T,-15,false,false,false,2023-06-13T21:15:00Z,9999-01-01T00:00:00Z
+NZE,40,W,T,-900,false,false,false,2019-12-18T17:00:00Z,2021-12-11T23:59:59Z
NZE,40,U,T,-15,false,false,false,2019-12-18T17:00:00Z,2021-12-11T23:59:59Z
+NZE,41,W,T,-900,false,false,false,2021-12-14T00:00:00Z,2023-12-09T23:00:00Z
NZE,41,U,T,-15,false,false,false,2021-12-14T00:00:00Z,2023-12-09T23:00:00Z
+NZE,42,W,T,-900,false,false,false,2023-12-12T20:15:00Z,9999-01-01T00:00:00Z
NZE,42,U,T,-15,false,false,false,2023-12-12T20:15:00Z,9999-01-01T00:00:00Z
+NZF,40,W,T,-900,false,false,false,2019-12-17T00:00:00Z,2020-03-25T00:00:00Z
NZF,40,U,T,-15,false,false,false,2019-12-17T00:00:00Z,2020-03-25T00:00:00Z
+NZF,41,W,T,-900,false,false,false,2020-08-31T23:10:15Z,2020-09-26T09:00:00Z
+NZF,41,W,T,-900,false,false,false,2021-07-20T23:15:00Z,2022-08-10T00:59:45Z
NZF,41,U,T,-15,false,false,false,2020-08-31T23:10:15Z,2020-09-26T09:00:00Z
NZF,41,U,T,-15,false,false,false,2021-07-20T23:15:00Z,2022-08-10T00:59:45Z
+NZF,42,W,T,-900,false,false,false,2022-08-11T00:15:00Z,9999-01-01T00:00:00Z
NZF,42,U,T,-15,false,false,false,2022-08-11T00:15:00Z,9999-01-01T00:00:00Z
+NZG,40,W,T,-900,false,false,false,2020-09-10T22:57:30Z,2022-07-29T18:02:45Z
NZG,40,U,T,-15,false,false,false,2020-09-10T22:57:30Z,2022-07-29T18:02:45Z
+NZG,41,W,T,-900,false,false,false,2022-07-30T20:15:00Z,9999-01-01T00:00:00Z
NZG,41,U,T,-15,false,false,false,2022-07-30T20:15:00Z,9999-01-01T00:00:00Z
+NZH,40,W,T,-900,false,false,false,2020-09-03T22:24:30Z,2022-08-01T00:12:30Z
NZH,40,U,T,-15,false,false,false,2020-09-03T22:24:30Z,2022-08-01T00:12:30Z
+NZH,41,W,T,-900,false,false,false,2022-08-01T20:15:00Z,9999-01-01T00:00:00Z
NZH,41,U,T,-15,false,false,false,2022-08-01T20:15:00Z,9999-01-01T00:00:00Z
+NZI,40,W,T,-900,false,false,false,2020-09-08T03:15:45Z,2022-08-02T21:59:30Z
NZI,40,U,T,-15,false,false,false,2020-09-08T03:15:45Z,2022-08-02T21:59:30Z
+NZI,41,W,T,-900,false,false,false,2022-08-03T21:15:00Z,9999-01-01T00:00:00Z
NZI,41,U,T,-15,false,false,false,2022-08-03T21:15:00Z,9999-01-01T00:00:00Z
+NZJ,40,W,T,-900,false,false,false,2021-07-09T00:00:00Z,2023-05-28T18:00:00Z
NZJ,40,U,T,-15,false,false,false,2021-07-09T00:00:00Z,2023-05-28T18:00:00Z
+NZJ,41,W,T,-900,false,false,false,2023-05-29T22:15:00Z,9999-01-01T00:00:00Z
NZJ,41,U,T,-15,false,false,false,2023-05-29T22:15:00Z,9999-01-01T00:00:00Z
+NZK,40,W,T,-900,false,false,false,2021-07-15T00:00:00Z,2023-06-06T00:00:00Z
NZK,40,U,T,-15,false,false,false,2021-07-15T00:00:00Z,2023-06-06T00:00:00Z
+NZK,41,W,T,-900,false,false,false,2023-06-06T21:00:00Z,9999-01-01T00:00:00Z
NZK,41,U,T,-15,false,false,false,2023-06-06T21:00:00Z,9999-01-01T00:00:00Z
+NZL,40,U,T,-900,false,false,false,2021-07-12T00:00:00Z,2023-06-03T00:00:00Z
NZL,40,U,T,-15,false,false,false,2021-07-12T00:00:00Z,2023-06-03T00:00:00Z
+NZL,41,U,T,-900,false,false,false,2023-06-03T20:15:00Z,9999-01-01T00:00:00Z
NZL,41,U,T,-15,false,false,false,2023-06-03T20:15:00Z,9999-01-01T00:00:00Z
OAHZ,10,L,H,1,false,false,false,2022-12-07T04:30:00Z,9999-01-01T00:00:00Z
OAHZ,10,H,H,100,false,false,false,2022-12-07T04:30:00Z,9999-01-01T00:00:00Z
@@ -2229,6 +2270,10 @@ TO003,08,,,-600,false,false,false,2022-06-22T03:00:00Z,9999-01-01T00:00:00Z
TO003,09,,,-600,false,false,false,2022-06-21T23:10:00Z,9999-01-01T00:00:00Z
TO003,10,,,-600,false,false,false,2022-06-21T23:10:00Z,9999-01-01T00:00:00Z
TO003,11,,,-600,false,false,false,2022-06-21T23:10:00Z,9999-01-01T00:00:00Z
+TO003,12,,,-600,false,false,false,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+TO003,13,,,-600,false,false,false,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+TO003,14,,,-600,false,false,false,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+TO003,15,,,-600,false,false,false,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
TO006,01,,,-600,false,false,false,2021-11-19T00:30:00Z,9999-01-01T00:00:00Z
TO006,02,,,-600,false,false,false,2018-10-08T23:50:00Z,9999-01-01T00:00:00Z
TO006,03,,,-600,false,false,false,2018-08-28T00:30:00Z,9999-01-01T00:00:00Z
@@ -2468,7 +2513,10 @@ WBCS,20,H,N,200,true,false,true,2002-04-16T00:00:00Z,9999-01-01T00:00:00Z
WBFS,20,B,N,50,true,false,false,2015-06-10T00:03:10Z,2020-06-16T00:00:00Z
WBFS,20,H,N,200,true,false,true,2002-01-27T00:30:00Z,9999-01-01T00:00:00Z
WBHS,20,B,N,50,true,false,false,2014-09-12T00:03:00Z,2020-06-16T00:00:00Z
-WBHS,20,H,N,200,true,false,true,2002-06-18T00:00:00Z,9999-01-01T00:00:00Z
+WBHS,20,H,N,200,true,false,true,2002-06-18T00:00:00Z,2020-02-08T23:59:59Z
+WBHS,20,H,N,200,true,false,false,2020-02-09T00:00:00Z,2022-05-18T07:28:00Z
+WBHS,21,H,N,200,true,false,false,2023-01-17T23:15:00Z,2024-02-28T21:41:00Z
+WBHS,21,H,N,200,false,false,false,2024-02-28T23:23:00Z,9999-01-01T00:00:00Z
WBR,10,S,H,50,false,false,true,1990-05-13T23:00:00Z,1990-05-17T14:00:00Z
WCDS,20,B,N,50,true,false,false,2014-08-06T23:30:10Z,2020-06-16T00:00:00Z
WCDS,20,H,N,200,true,false,true,2000-03-21T02:00:00Z,9999-01-01T00:00:00Z
@@ -2579,22 +2627,22 @@ WI12,10,H,H,100,false,false,false,2011-06-13T00:01:02Z,2011-11-23T00:00:00Z
WI13,10,H,H,100,false,false,false,2011-06-13T00:00:02Z,2018-05-19T00:00:00Z
WI14,10,H,H,100,false,false,false,2011-06-13T00:00:02Z,2011-11-23T00:00:00Z
WI15,10,H,H,100,false,false,false,2011-06-13T00:00:02Z,2011-11-23T00:00:00Z
-WI227,02,,,-600,false,false,false,2019-04-10T01:40:00Z,9999-01-01T00:00:00Z
-WI227,03,,,-600,false,false,false,2019-06-17T23:40:00Z,9999-01-01T00:00:00Z
+WI227,02,,,-600,false,false,false,2019-04-10T01:40:00Z,2023-12-01T00:00:00Z
+WI227,03,,,-600,false,false,false,2019-06-17T23:40:00Z,2023-12-01T00:00:00Z
WIAZ,10,E,H,100,false,false,false,2010-07-27T03:15:00Z,9999-01-01T00:00:00Z
WICS,20,H,N,200,true,false,true,2002-04-18T00:00:00Z,2006-02-21T10:00:00Z
WIGC,20,B,N,50,true,false,false,2010-03-25T05:00:00Z,2020-06-16T00:00:00Z
WIGC,20,H,N,200,true,false,true,2004-11-27T00:00:00Z,9999-01-01T00:00:00Z
WILA,10,S,H,50,false,false,true,1994-06-21T21:27:00Z,1994-06-28T23:34:00Z
-WIZ,10,L,H,1,false,false,false,2007-04-19T04:00:00Z,9999-01-01T00:00:00Z
+WIZ,10,L,H,1,false,false,false,2007-04-19T04:00:00Z,2023-12-01T00:00:00Z
WIZ,10,E,H,100,false,false,false,2006-09-19T00:00:01Z,2007-04-19T03:00:00Z
-WIZ,10,H,H,100,false,false,false,2007-04-19T04:00:00Z,9999-01-01T00:00:00Z
-WIZ,30,L,D,1,false,false,false,2006-09-19T00:00:01Z,9999-01-01T00:00:00Z
-WIZ,30,H,D,100,false,false,false,2006-09-19T00:00:01Z,9999-01-01T00:00:00Z
-WIZ,31,L,D,1,false,false,false,2015-01-22T00:00:00Z,9999-01-01T00:00:00Z
-WIZ,31,H,D,100,false,false,false,2015-01-22T00:00:00Z,9999-01-01T00:00:00Z
-WIZ,32,L,D,1,false,false,false,2015-01-22T00:00:00Z,9999-01-01T00:00:00Z
-WIZ,32,H,D,100,false,false,false,2015-01-22T00:00:00Z,9999-01-01T00:00:00Z
+WIZ,10,H,H,100,false,false,false,2007-04-19T04:00:00Z,2023-12-01T00:00:00Z
+WIZ,30,L,D,1,false,false,false,2006-09-19T00:00:01Z,2023-12-01T00:00:00Z
+WIZ,30,H,D,100,false,false,false,2006-09-19T00:00:01Z,2023-12-01T00:00:00Z
+WIZ,31,L,D,1,false,false,false,2015-01-22T00:00:00Z,2023-12-01T00:00:00Z
+WIZ,31,H,D,100,false,false,false,2015-01-22T00:00:00Z,2023-12-01T00:00:00Z
+WIZ,32,L,D,1,false,false,false,2015-01-22T00:00:00Z,2023-12-01T00:00:00Z
+WIZ,32,H,D,100,false,false,false,2015-01-22T00:00:00Z,2023-12-01T00:00:00Z
WKA,10,S,H,50,false,false,true,1990-08-10T18:28:00Z,1990-08-19T01:52:00Z
WKB,10,S,H,50,false,false,true,1990-08-13T10:46:00Z,1990-08-22T20:55:00Z
WKC,10,S,H,50,false,false,true,1990-08-10T18:28:00Z,1990-08-22T20:55:00Z
@@ -2639,54 +2687,54 @@ WPVZ,10,L,H,1,false,false,false,2003-12-10T11:00:02Z,2010-11-30T22:00:00Z
WPVZ,10,H,H,100,false,false,false,2003-12-10T11:00:02Z,2010-11-30T22:00:00Z
WPWS,20,B,N,50,true,false,false,2014-11-28T00:00:05Z,2020-06-16T00:00:00Z
WPWS,20,H,N,200,true,false,true,2002-01-29T00:00:00Z,9999-01-01T00:00:00Z
-WQAB,21,B,N,50,true,false,false,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,21,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,21,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
-WQAB,22,B,N,50,true,false,false,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,22,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,22,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
-WQAB,23,B,N,50,true,false,false,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,23,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,23,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
-WQAB,24,B,N,50,true,false,false,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,24,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,24,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
-WQAB,25,B,N,50,true,false,false,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,25,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,25,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
-WQAB,26,B,N,50,true,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
-WQAB,26,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,26,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
-WQAB,27,B,N,50,true,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
-WQAB,27,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,27,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
-WQAB,28,B,N,50,true,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
-WQAB,28,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,28,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
-WQAB,29,B,N,50,true,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
-WQAB,29,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,29,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
-WQAB,2A,B,N,50,true,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
-WQAB,2A,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,2A,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
-WQAB,2B,B,N,50,true,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
-WQAB,2B,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,2B,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
-WQAB,2C,B,N,50,true,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
-WQAB,2C,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,2C,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
-WQAB,2D,B,N,50,true,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
-WQAB,2D,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,2D,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
-WQAB,2E,B,N,50,true,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
-WQAB,2E,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,2E,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
-WQAB,2F,B,N,50,true,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
-WQAB,2F,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,2F,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
-WQAB,2G,B,N,50,true,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
-WQAB,2G,H,N,200,true,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
-WQAB,2G,H,N,200,true,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,21,B,N,50,XYZ,false,false,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,21,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,21,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,22,B,N,50,XYZ,false,false,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,22,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,22,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,23,B,N,50,XYZ,false,false,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,23,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,23,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,24,B,N,50,XYZ,false,false,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,24,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,24,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,25,B,N,50,XYZ,false,false,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,25,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,25,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,26,B,N,50,XYZ,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
+WQAB,26,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,26,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,27,B,N,50,XYZ,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
+WQAB,27,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,27,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,28,B,N,50,XYZ,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
+WQAB,28,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,28,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,29,B,N,50,XYZ,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
+WQAB,29,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,29,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,2A,B,N,50,XYZ,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
+WQAB,2A,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,2A,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,2B,B,N,50,XYZ,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
+WQAB,2B,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,2B,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,2C,B,N,50,XYZ,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
+WQAB,2C,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,2C,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,2D,B,N,50,XYZ,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
+WQAB,2D,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,2D,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,2E,B,N,50,XYZ,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
+WQAB,2E,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,2E,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,2F,B,N,50,XYZ,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
+WQAB,2F,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,2F,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
+WQAB,2G,B,N,50,XYZ,false,false,2012-05-15T00:00:00Z,2019-12-16T00:00:00Z
+WQAB,2G,H,N,200,XYZ,false,true,2012-05-15T00:00:01Z,2019-12-16T00:00:00Z
+WQAB,2G,H,N,200,XYZ,false,false,2019-12-16T00:00:01Z,9999-01-01T00:00:00Z
WRAS,20,B,N,50,false,false,false,2017-04-18T04:00:00Z,2020-06-16T00:00:00Z
WRAS,20,H,N,200,false,false,true,2017-04-18T04:00:00Z,9999-01-01T00:00:00Z
WRAV,10,S,H,50,false,false,true,1995-01-13T10:42:00Z,1998-04-05T21:40:00Z
@@ -2696,18 +2744,18 @@ WRCS,20,H,N,200,true,false,false,2020-02-09T00:00:00Z,9999-01-01T00:00:00Z
WROM,10,S,H,50,false,false,true,1993-11-04T10:07:00Z,1994-03-06T14:25:00Z
WSFC,20,B,N,50,true,false,false,2011-08-27T04:45:00Z,2020-06-16T00:00:00Z
WSFC,20,H,N,200,true,false,true,2005-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WSRZ,10,L,H,1,false,false,false,2013-04-08T04:00:00Z,9999-01-01T00:00:00Z
-WSRZ,10,H,H,100,false,false,false,2013-04-08T04:00:00Z,9999-01-01T00:00:00Z
-WSRZ,30,L,D,1,false,false,false,2013-04-08T04:00:00Z,9999-01-01T00:00:00Z
-WSRZ,30,H,D,100,false,false,false,2013-04-08T04:00:00Z,9999-01-01T00:00:00Z
+WSRZ,10,L,H,1,false,false,false,2013-04-08T04:00:00Z,2023-12-01T00:00:00Z
+WSRZ,10,H,H,100,false,false,false,2013-04-08T04:00:00Z,2023-12-01T00:00:00Z
+WSRZ,30,L,D,1,false,false,false,2013-04-08T04:00:00Z,2023-12-01T00:00:00Z
+WSRZ,30,H,D,100,false,false,false,2013-04-08T04:00:00Z,2023-12-01T00:00:00Z
WSRZ,31,L,D,1,false,false,false,2014-11-20T02:00:00Z,2018-05-28T21:00:00Z
WSRZ,31,H,D,100,false,false,false,2014-11-20T02:00:00Z,2018-05-28T21:00:00Z
WSRZ,32,L,D,1,false,false,false,2014-11-20T02:00:00Z,2018-05-28T21:00:00Z
WSRZ,32,H,D,100,false,false,false,2014-11-20T02:00:00Z,2018-05-28T21:00:00Z
-WSRZ,33,L,D,1,false,false,false,2018-05-28T22:15:00Z,9999-01-01T00:00:00Z
-WSRZ,33,H,D,100,false,false,false,2018-05-28T22:15:00Z,9999-01-01T00:00:00Z
-WSRZ,34,L,D,1,false,false,false,2018-05-28T22:15:00Z,9999-01-01T00:00:00Z
-WSRZ,34,H,D,100,false,false,false,2018-05-28T22:15:00Z,9999-01-01T00:00:00Z
+WSRZ,33,L,D,1,false,false,false,2018-05-28T22:15:00Z,2023-12-01T00:00:00Z
+WSRZ,33,H,D,100,false,false,false,2018-05-28T22:15:00Z,2023-12-01T00:00:00Z
+WSRZ,34,L,D,1,false,false,false,2018-05-28T22:15:00Z,2023-12-01T00:00:00Z
+WSRZ,34,H,D,100,false,false,false,2018-05-28T22:15:00Z,2023-12-01T00:00:00Z
WSTS,20,B,N,50,false,false,false,2016-12-02T02:30:00Z,2020-06-16T00:00:00Z
WSTS,20,H,N,200,false,false,true,2016-12-02T02:30:00Z,9999-01-01T00:00:00Z
WSTS,21,B,N,50,false,false,false,2016-12-06T03:30:00Z,2020-06-16T00:00:00Z
diff --git a/meta/collection.go b/meta/collection.go
index 17c782210..298715b7a 100644
--- a/meta/collection.go
+++ b/meta/collection.go
@@ -51,7 +51,7 @@ func (c Collection) Less(collection Collection) bool {
// Subsource returns the Subsource code based on the Stream and Component values.
func (c Collection) Subsource() string {
switch strings.ToLower(c.Stream.Axial) {
- case "true", "yes":
+ case "true", "yes", "z12":
switch strings.ToUpper(c.Component.Subsource) {
case "N":
return "1"
@@ -60,6 +60,15 @@ func (c Collection) Subsource() string {
default:
return c.Component.Subsource
}
+ case "xyz":
+ switch strings.ToUpper(c.Component.Subsource) {
+ case "N":
+ return "Y"
+ case "E":
+ return "X"
+ default:
+ return c.Component.Subsource
+ }
default:
return c.Component.Subsource
}
diff --git a/meta/correction.go b/meta/correction.go
index 5b61a1bae..a1ff42c35 100644
--- a/meta/correction.go
+++ b/meta/correction.go
@@ -330,6 +330,10 @@ func (s *Set) SensorCalibrationCorrections(coll Collection) []Correction {
if c.Serial != coll.InstalledSensor.Serial {
continue
}
+ if c.Number != coll.Component.Number {
+ continue
+ }
+
if !coll.Span.Overlaps(c.Span) {
continue
}
@@ -407,6 +411,9 @@ func (s *Set) DataloggerCalibrationCorrections(coll Collection) []Correction {
if c.Serial != coll.DeployedDatalogger.Serial {
continue
}
+ if c.Number != coll.Channel.Number {
+ continue
+ }
if !coll.Span.Overlaps(c.Span) {
continue
}
diff --git a/meta/generate/main.go b/meta/generate/main.go
index b6bc48aa4..852cb0b37 100644
--- a/meta/generate/main.go
+++ b/meta/generate/main.go
@@ -38,6 +38,7 @@ func main() {
"mounts": {"Mount"},
"networks": {"Network"},
"placenames": {"Placename"},
+ "points": {"Point"},
"polarities": {"Polarity"},
"preamps": {"Preamp"},
"samples": {"Sample"},
@@ -63,6 +64,7 @@ func main() {
"mounts": {"Mount", []string{"code"}},
"networks": {"Network", []string{"code"}},
"placenames": {"Placename", []string{"name"}},
+ "points": {"Point", []string{"sample", "location"}},
"samples": {"Sample", []string{"code"}},
"sites": {"Site", []string{"station", "location"}},
"stations": {"Station", []string{"code"}},
diff --git a/meta/point.go b/meta/point.go
new file mode 100644
index 000000000..491acc5d0
--- /dev/null
+++ b/meta/point.go
@@ -0,0 +1,166 @@
+package meta
+
+import (
+ "sort"
+ "strconv"
+ "strings"
+ "time"
+)
+
+const (
+ pointSample = iota
+ pointLocation
+ pointLatitude
+ pointLongitude
+ pointElevation
+ pointDepth
+ pointDatum
+ pointSurvey
+ pointStart
+ pointEnd
+ pointLast
+)
+
+var pointHeaders Header = map[string]int{
+ "Sample": pointSample,
+ "Location": pointLocation,
+ "Latitude": pointLatitude,
+ "Longitude": pointLongitude,
+ "Elevation": pointElevation,
+ "Depth": pointDepth,
+ "Datum": pointDatum,
+ "Survey": pointSurvey,
+ "Start Date": pointStart,
+ "End Date": pointEnd,
+}
+
+type Point struct {
+ Position
+ Span
+
+ Sample string
+ Location string
+ Survey string
+}
+
+func (s Point) Less(point Point) bool {
+ switch {
+ case s.Sample < point.Sample:
+ return true
+ case s.Sample > point.Sample:
+ return false
+ case s.Location < point.Location:
+ return true
+ case s.Location > point.Location:
+ return false
+ default:
+ return false
+ }
+}
+
+type PointList []Point
+
+func (s PointList) Len() int { return len(s) }
+func (s PointList) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
+func (s PointList) Less(i, j int) bool { return s[i].Less(s[j]) }
+
+func (s PointList) encode() [][]string {
+ var data [][]string
+
+ data = append(data, pointHeaders.Columns())
+ for _, row := range s {
+ data = append(data, []string{
+ strings.TrimSpace(row.Sample),
+ strings.TrimSpace(row.Location),
+ strings.TrimSpace(row.latitude),
+ strings.TrimSpace(row.longitude),
+ strings.TrimSpace(row.elevation),
+ strings.TrimSpace(row.depth),
+ strings.TrimSpace(row.Datum),
+ strings.TrimSpace(row.Survey),
+ row.Start.Format(DateTimeFormat),
+ row.End.Format(DateTimeFormat),
+ })
+ }
+
+ return data
+}
+
+func (s *PointList) decode(data [][]string) error {
+ var points []Point
+
+ if !(len(data) > 1) {
+ return nil
+ }
+
+ fields := pointHeaders.Fields(data[0])
+ for _, row := range data[1:] {
+ d := fields.Remap(row)
+
+ lat, err := strconv.ParseFloat(d[pointLatitude], 64)
+ if err != nil {
+ return err
+ }
+ lon, err := strconv.ParseFloat(d[pointLongitude], 64)
+ if err != nil {
+ return err
+ }
+ elev, err := ParseFloat64(d[pointElevation])
+ if err != nil {
+ return err
+ }
+ depth, err := ParseFloat64(d[pointDepth])
+ if err != nil {
+ return err
+ }
+
+ start, err := time.Parse(DateTimeFormat, d[pointStart])
+ if err != nil {
+ return err
+ }
+ end, err := time.Parse(DateTimeFormat, d[pointEnd])
+ if err != nil {
+ return err
+ }
+
+ points = append(points, Point{
+ Position: Position{
+ // geographic details
+ Latitude: lat,
+ Longitude: lon,
+ Elevation: elev,
+ Depth: depth,
+ Datum: strings.TrimSpace(d[pointDatum]),
+
+ // shadow variables
+ latitude: d[pointLatitude],
+ longitude: d[pointLongitude],
+ elevation: d[pointElevation],
+ depth: d[pointDepth],
+ },
+ Span: Span{
+ Start: start,
+ End: end,
+ },
+ Sample: strings.TrimSpace(d[pointSample]),
+ Location: strings.TrimSpace(d[pointLocation]),
+ Survey: strings.TrimSpace(d[pointSurvey]),
+ })
+ }
+
+ *s = PointList(points)
+
+ return nil
+}
+
+func LoadPoints(path string) ([]Point, error) {
+ var s []Point
+
+ if err := LoadList(path, (*PointList)(&s)); err != nil {
+ return nil, err
+ }
+
+ sort.Sort(PointList(s))
+
+ return s, nil
+}
diff --git a/meta/points_test.go b/meta/points_test.go
new file mode 100644
index 000000000..ed056f8a7
--- /dev/null
+++ b/meta/points_test.go
@@ -0,0 +1,74 @@
+package meta
+
+import (
+ "testing"
+ "time"
+)
+
+func TestPointlList(t *testing.T) {
+ t.Run("check channels", testListFunc("testdata/points.csv", &PointList{
+ Point{
+ Sample: "NA000",
+ Location: "MC01",
+ Position: Position{
+ Latitude: -39.156798,
+ Longitude: 175.631871,
+ Elevation: 2197.0,
+ Depth: 0.0,
+ Datum: "WGS84",
+
+ latitude: "-39.156798",
+ longitude: "175.631871",
+ elevation: "2197.0",
+ depth: "",
+ },
+ Span: Span{
+ Start: time.Date(2003, 7, 17, 0, 0, 0, 0, time.UTC),
+ End: time.Date(9999, 1, 1, 0, 0, 0, 0, time.UTC),
+ },
+ Survey: "External GPS Device",
+ },
+ Point{
+ Sample: "NA001",
+ Location: "MC01",
+ Position: Position{
+ Latitude: -39.1562653309,
+ Longitude: 175.631464065,
+ Elevation: 2280.0,
+ Depth: 0.0,
+ Datum: "WGS84",
+
+ latitude: "-39.1562653309",
+ longitude: "175.631464065",
+ elevation: "2280",
+ depth: "",
+ },
+ Span: Span{
+ Start: time.Date(1978, 7, 1, 0, 0, 0, 0, time.UTC),
+ End: time.Date(9999, 1, 1, 0, 0, 0, 0, time.UTC),
+ },
+ Survey: "External GPS Device",
+ },
+ Point{
+ Sample: "NA002",
+ Location: "MC01",
+ Position: Position{
+ Latitude: -39.156415,
+ Longitude: 175.634722,
+ Elevation: 2280.0,
+ Depth: 0.0,
+ Datum: "WGS84",
+
+ latitude: "-39.156415",
+ longitude: "175.634722",
+ elevation: "2280",
+ depth: "",
+ },
+ Span: Span{
+ Start: time.Date(1973, 11, 27, 0, 0, 0, 0, time.UTC),
+ End: time.Date(9999, 1, 1, 0, 0, 0, 0, time.UTC),
+ },
+ Survey: "External GPS Device",
+ },
+ }))
+}
diff --git a/meta/set.go b/meta/set.go
index 0271dc7a9..582c569b4 100644
--- a/meta/set.go
+++ b/meta/set.go
@@ -16,6 +16,7 @@ const (
MonumentsFile = "network/monuments.csv"
MountsFile = "network/mounts.csv"
NetworksFile = "network/networks.csv"
+ PointsFile = "network/points.csv"
SamplesFile = "network/samples.csv"
SitesFile = "network/sites.csv"
StationsFile = "network/stations.csv"
@@ -68,6 +69,7 @@ type Set struct {
monuments MonumentList
mounts MountList
networks NetworkList
+ points PointList
samples SampleList
sites SiteList
stations StationList
@@ -114,6 +116,7 @@ func (s *Set) files() map[string]List {
MonumentsFile: &s.monuments,
MountsFile: &s.mounts,
NetworksFile: &s.networks,
+ PointsFile: &s.points,
SamplesFile: &s.samples,
SitesFile: &s.sites,
StationsFile: &s.stations,
diff --git a/meta/set_auto.go b/meta/set_auto.go
index 97c85a17e..bdaab4d85 100644
--- a/meta/set_auto.go
+++ b/meta/set_auto.go
@@ -199,6 +199,13 @@ func (s Set) Placenames() []Placename {
return placenames
}
+// Points is a helper function to return a slice copy of Point values.
+func (s Set) Points() []Point {
+ points := make([]Point, len(s.points))
+ copy(points, s.points)
+ return points
+}
+
// Polarities is a helper function to return a slice copy of Polarity values.
func (s Set) Polarities() []Polarity {
polarities := make([]Polarity, len(s.polarities))
@@ -381,6 +388,20 @@ func (s Set) Placename(name string) (Placename, bool) {
return Placename{}, false
}
+// Point is a helper function to return a Point value and true if one exists.
+func (s Set) Point(sample, location string) (Point, bool) {
+ for _, v := range s.points {
+ if sample != v.Sample {
+ continue
+ }
+ if location != v.Location {
+ continue
+ }
+ return v, true
+ }
+ return Point{}, false
+}
+
// Sample is a helper function to return a Sample value and true if one exists.
func (s Set) Sample(code string) (Sample, bool) {
for _, v := range s.samples {
diff --git a/meta/testdata/points.csv b/meta/testdata/points.csv
new file mode 100644
index 000000000..e530fdff6
--- /dev/null
+++ b/meta/testdata/points.csv
@@ -0,0 +1,4 @@
+Sample,Location,Latitude,Longitude,Elevation,Depth,Datum,Survey,Start Date,End Date
+NA000,MC01,-39.156798,175.631871,2197.0,,WGS84,External GPS Device,2003-07-17T00:00:00Z,9999-01-01T00:00:00Z
+NA001,MC01,-39.1562653309,175.631464065,2280,,WGS84,External GPS Device,1978-07-01T00:00:00Z,9999-01-01T00:00:00Z
+NA002,MC01,-39.156415,175.634722,2280,,WGS84,External GPS Device,1973-11-27T00:00:00Z,9999-01-01T00:00:00Z
diff --git a/network/marks.csv b/network/marks.csv
index 2de585dd6..c2c2406f6 100644
--- a/network/marks.csv
+++ b/network/marks.csv
@@ -79,7 +79,7 @@ LYTT,GN,no,Lyttelton Tide Gauge,-43.60584,172.72222,18.5,NZGD2000,1999-11-15T00:
MAHA,CG,no,Mahakipawa Hill,-41.291387,173.793817,442,NZGD2000,2009-11-16T00:00:00Z,9999-01-01T00:00:00Z
MAHI,CG,no,Mahia Peninsula,-39.152563727,177.90700192,322.4398,NZGD2000,2007-02-20T00:00:00Z,9999-01-01T00:00:00Z
MAHO,LI,no,Mahoenui,-38.51300918779,174.85408746923,302.4836,NZGD2000,2004-02-29T00:00:00Z,9999-01-01T00:00:00Z
-MAKO,CG,no,Makorori,-38.6437598,178.1291161,231,NZGD2000,2010-11-09T00:00:00Z,9999-01-01T00:00:00Z
+MAKO,CG,no,Makorori,-38.6437954694,178.1291345694,255.030,NZGD2000,2010-11-09T00:00:00Z,9999-01-01T00:00:00Z
MANG,CG,no,Mangatainoka River,-40.66869722,175.57486925,418.01,NZGD2000,2005-02-03T00:00:00Z,9999-01-01T00:00:00Z
MAST,LI,no,Masterton,-41.06199062338,175.58457782885,207.197,NZGD2000,2002-12-19T00:00:00Z,2016-04-07T00:00:00Z
MATW,CG,no,Matawai,-38.33384691,177.5262032,646.269,NZGD2000,2004-04-09T00:00:00Z,9999-01-01T00:00:00Z
@@ -156,8 +156,8 @@ RGRE,CG,no,Rotoehu,-38.0573,176.5212,552,WGS84,2007-02-08T00:00:00Z,9999-01-01T0
RGRR,CG,no,Republican Road,-38.338892947,176.514616116,552.71,NZGD2000,2007-12-11T00:00:00Z,9999-01-01T00:00:00Z
RGTA,CG,no,Tarawera,-38.233772056,176.506100261,1063.3613,NZGD2000,2007-11-22T00:00:00Z,9999-01-01T00:00:00Z
RGUT,CG,no,Utuhina,-38.176649052,176.194167271,560.127,NZGD2000,2005-12-15T00:00:00Z,9999-01-01T00:00:00Z
-RGWC,CG,no,White Island Crater Floor,-37.524338674,177.192476273,36.764,WGS84,2014-01-29T00:00:00Z,9999-01-01T00:00:00Z
-RGWI,CG,no,White Island Summit,-37.518075632,177.177773718,292.351,WGS84,2011-09-27T00:00:00Z,9999-01-01T00:00:00Z
+RGWC,CG,no,White Island Crater Floor,-37.524338674,177.192476273,36.764,WGS84,2014-01-29T00:00:00Z,2023-12-01T00:00:00Z
+RGWI,CG,no,White Island Summit,-37.518075632,177.177773718,292.351,WGS84,2011-09-27T00:00:00Z,2023-12-01T00:00:00Z
RGWV,CG,no,Waikite Valley Road,-38.352568427,176.210852928,490,NZGD2000,2009-09-04T00:00:00Z,9999-01-01T00:00:00Z
RIPA,CG,no,Ripia,-39.165523807,176.49251215,734.063,NZGD2000,2004-02-20T00:00:00Z,9999-01-01T00:00:00Z
RLTN,CG,no,Resolution Island,-45.687898575,166.686088376,1070.2412,WGS84,2020-06-22T00:00:00Z,9999-01-01T00:00:00Z
diff --git a/network/monuments.csv b/network/monuments.csv
index 2caa03743..2c7544248 100644
--- a/network/monuments.csv
+++ b/network/monuments.csv
@@ -156,8 +156,8 @@ RGRE,,Forced Centering,Wyatt/Agnew Drilled-Braced,-1.64,Stainless Steel Rods,10,
RGRR,,Forced Centering,Wyatt/Agnew Drilled-Braced,-1.355,Stainless Steel Rods,10,2007-12-11T00:00:00Z,9999-01-01T00:00:00Z,Ignimbrite,
RGTA,,Forced Centering,Wyatt/Agnew Drilled-Braced,-1.5,Stainless Steel Rods,10,2007-10-10T00:00:00Z,9999-01-01T00:00:00Z,Rhyolite,
RGUT,,Forced Centering,Pillar,-1.145,Reinforced Concrete,2,2005-12-15T00:00:00Z,9999-01-01T00:00:00Z,Ignimbrite,
-RGWC,,Forced Centering,Shallow Rod / Braced Antenna Mount,-1.17,Stainless Steel Rods,2.5,2014-01-29T00:00:00Z,9999-01-01T00:00:00Z,,
-RGWI,,Forced Centering,Shallow Rod / Braced Antenna Mount,-1.16,Stainless Steel Rods,2.5,2011-09-27T00:00:00Z,9999-01-01T00:00:00Z,,
+RGWC,,Forced Centering,Shallow Rod / Braced Antenna Mount,-1.17,Stainless Steel Rods,2.5,2014-01-29T00:00:00Z,2023-12-01T00:00:00Z,,
+RGWI,,Forced Centering,Shallow Rod / Braced Antenna Mount,-1.16,Stainless Steel Rods,2.5,2011-09-27T00:00:00Z,2023-12-01T00:00:00Z,,
RGWV,,Forced Centering,Wyatt/Agnew Drilled-Braced,-1.5,Stainless Steel Rods,10,2009-09-04T00:00:00Z,9999-01-01T00:00:00Z,Ignimbrite,
RIPA,,Forced Centering,Pillar,-1.6,Reinforced Concrete,2,2004-02-20T00:00:00Z,9999-01-01T00:00:00Z,Sandstone,
RLTN,,Forced Centering,Shallow Rod / Braced Antenna Mount,-1.760,Stainless Steel Rods,3.2,2020-03-31T00:00:00Z,9999-01-01T00:00:00Z,Bedrock,Highly Weathered Diorite
diff --git a/network/mounts.csv b/network/mounts.csv
index 777e76ef5..2996c5060 100644
--- a/network/mounts.csv
+++ b/network/mounts.csv
@@ -10,8 +10,9 @@ RIMK,VC,Raoul Island Moumoukai,-29.267332,-177.907235,490,WGS84,Images of Green
RUD01,EN,Tukino Skifield,-39.2775,175.6087,1748,WGS84,SO2 from Ruapehu,2021-05-05T05:13:00Z,9999-01-01T00:00:00Z
RUD02,EN,Iwikau Village,-39.23715,175.55638,1663,WGS84,SO2 from Ruapehu,2021-05-06T00:00:00Z,9999-01-01T00:00:00Z
RUD03,EN,Turoa Road End,-39.3046,175.5266,1672,WGS84,SO2 from Ruapehu,2023-06-28T03:30:00Z,9999-01-01T00:00:00Z
+RUD04,EN,Wahianoa,-39.326976949,175.597862113,1566,WGS84,SO2 from Ruapehu,2024-02-07T23:00:00Z,9999-01-01T00:00:00Z
TEMO,VC,Taranaki Emergency Management Office,-39.062427989,174.073384416,47,WGS84,Images of Taranaki.,2002-09-18T13:00:10Z,9999-01-01T00:00:00Z
-TOD01,EN,East Lower Te Maari,-39.10511,175.68043,1399,WGS84,SO2 from Tongariro,2021-07-29T02:30:00Z,9999-01-01T00:00:00Z
+TOD01,EN,East Lower Te Maari,-39.10511,175.68043,1399,WGS84,SO2 from Tongariro,2021-07-29T02:30:00Z,2024-02-04T08:00:00Z
TOD02,EN,West Lower Te Maari,-39.10304,175.67048,1406,WGS84,SO2 from Tongariro,2021-07-29T01:00:00Z,9999-01-01T00:00:00Z
TOKR,VC,Karewarewa,-39.094442315,175.641203517,1207,WGS84,Images of Te Maari Crater.,2012-08-29T02:00:00Z,9999-01-01T00:00:00Z
WHHB,VC,Whakatane Harbour,-37.949622999,177.002304198,10,WGS84,Images of White Island.,2001-05-21T13:00:10Z,2007-04-13T00:00:00Z
diff --git a/network/points.csv b/network/points.csv
index f1490a701..836d43efe 100644
--- a/network/points.csv
+++ b/network/points.csv
@@ -253,21 +253,21 @@ WI151,MC01,-37.5219933542,177.187151497,0,,WGS84,External GPS Device,2016-11-09T
WI152,MC01,-37.5220140682,177.186835624,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
WI153,MC01,-37.5217836251,177.186969392,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
WI154,MC01,-37.521777564,177.187376714,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI200,MC01,-37.522837,177.185932,15,,WGS84,External GPS Device,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI210,MC01,-37.5239,177.188,20,,WGS84,External GPS Device,2003-04-08T00:00:00Z,9999-01-01T00:00:00Z
+WI200,MC01,-37.522837,177.185932,15,,WGS84,External GPS Device,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI210,MC01,-37.5239,177.188,20,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2019-12-04T00:00:00Z
WI211,MC01,-37.5217,177.1837,-5,,WGS84,External GPS Device,2014-01-15T00:00:00Z,2018-07-18T00:00:00Z
-WI220,MC01,-37.526413,177.191769,1,,WGS84,External GPS Device,2011-03-11T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,-37.524239,177.190057,1,,WGS84,External GPS Device,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,-37.524196,177.189998,1,,WGS84,External GPS Device,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
+WI220,MC01,-37.526413,177.191769,1,,WGS84,External GPS Device,2011-03-11T00:00:00Z,2018-07-18T00:00:00Z
+WI220,MC02,-37.524239,177.190057,1,,WGS84,External GPS Device,2004-08-03T00:00:00Z,2008-02-21T00:00:00Z
+WI220,MC03,-37.524196,177.189998,1,,WGS84,External GPS Device,2004-10-15T00:00:00Z,2004-10-15T00:00:00Z
WI221,MC01,-37.525391,177.190384,4,,WGS84,External GPS Device,1995-11-15T00:00:00Z,2007-07-25T00:00:00Z
WI221,MC02,-37.525391,177.190384,4,,WGS84,External GPS Device,2005-03-08T00:00:00Z,2013-07-09T00:00:00Z
-WI221,MC03,-37.525443,177.190444,4,,WGS84,External GPS Device,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,-37.525443,177.190444,4,,WGS84,External GPS Device,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
+WI221,MC03,-37.525443,177.190444,4,,WGS84,External GPS Device,2015-02-25T00:00:00Z,2019-10-09T00:00:00Z
+WI221,MC04,-37.525443,177.190444,4,,WGS84,External GPS Device,2014-01-16T00:00:00Z,2015-09-30T00:00:00Z
WI222,MC01,-37.523359,177.188748,8,,WGS84,External GPS Device,2004-09-17T00:00:00Z,2015-02-25T00:00:00Z
-WI223,MC01,-37.524153,177.188013,8,,WGS84,External GPS Device,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
+WI223,MC01,-37.524153,177.188013,8,,WGS84,External GPS Device,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
WI224,MC01,-37.523392,177.186082,10,,WGS84,External GPS Device,2005-11-08T00:00:00Z,2012-06-11T00:00:00Z
-WI225,MC01,-37.52382,177.187982,10,,WGS84,External GPS Device,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,-37.52382,177.187982,10,,WGS84,External GPS Device,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,-37.523597,177.188649,8,,WGS84,External GPS Device,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC01,-37.52188,177.189942,9,,WGS84,External GPS Device,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
+WI225,MC01,-37.52382,177.187982,10,,WGS84,External GPS Device,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI225,MC02,-37.52382,177.187982,10,,WGS84,External GPS Device,2009-11-20T00:00:00Z,2016-11-09T00:00:00Z
+WI226,MC01,-37.523597,177.188649,8,,WGS84,External GPS Device,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI227,MC01,-37.52188,177.189942,9,,WGS84,External GPS Device,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
WI228,MC01,-37.520946,177.186671,24,,WGS84,External GPS Device,2017-06-29T00:00:00Z,2017-06-29T00:00:00Z
diff --git a/network/samples.csv b/network/samples.csv
index ecfbdd967..c08c4a041 100644
--- a/network/samples.csv
+++ b/network/samples.csv
@@ -223,15 +223,15 @@ WI151,MC,White Island soil gas 151,-37.5219933542,177.187151497,0,,WGS84,2016-11
WI152,MC,White Island soil gas 152,-37.5220140682,177.186835624,0,,WGS84,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
WI153,MC,White Island soil gas 153,-37.5217836251,177.186969392,0,,WGS84,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
WI154,MC,White Island soil gas 154,-37.521777564,177.187376714,0,,WGS84,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI200,MC,White Island Crater Lake,-37.522837,177.185932,15,,WGS84,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI210,MC,White Island Fumarole 0,-37.5239,177.188,20,,WGS84,2003-04-08T00:00:00Z,9999-01-01T00:00:00Z
+WI200,MC,White Island Crater Lake,-37.522837,177.185932,15,,WGS84,1995-11-15T00:00:00Z,2019-12-04T00:00:00Z
+WI210,MC,White Island Fumarole 0,-37.5239,177.188,20,,WGS84,2003-04-08T00:00:00Z,2019-12-04T00:00:00Z
WI211,MC,White Island 2012 Dome Fumarole,-37.5217,177.1837,-5,,WGS84,2014-01-15T00:00:00Z,2018-07-18T00:00:00Z
-WI220,MC,White Island Acid Stream,-37.526413,177.191769,1,,WGS84,2001-04-19T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC,White Island Black Pot Spring,-37.525391,177.190384,4,,WGS84,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
+WI220,MC,White Island Acid Stream,-37.526413,177.191769,1,,WGS84,2001-04-19T00:00:00Z,2018-07-18T00:00:00Z
+WI221,MC,White Island Black Pot Spring,-37.525391,177.190384,4,,WGS84,1995-11-15T00:00:00Z,2019-10-09T00:00:00Z
WI222,MC,White Island Teds Head Spring,-37.523359,177.188748,8,,WGS84,2004-09-17T00:00:00Z,2015-02-25T00:00:00Z
-WI223,MC,White Island Sulphur Cave Spring,-37.524153,177.188013,8,,WGS84,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
+WI223,MC,White Island Sulphur Cave Spring,-37.524153,177.188013,8,,WGS84,2005-08-26T00:00:00Z,2013-07-09T00:00:00Z
WI224,MC,White Island Sulphur Wall Collapse,-37.523392,177.186082,10,,WGS84,2005-11-08T00:00:00Z,2012-06-11T00:00:00Z
-WI225,MC,White Island Cindys Mistake Pool,-37.52382,177.187982,10,,WGS84,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC,White Island Iron Stream,-37.523597,177.188649,8,,WGS84,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI227,MC,White Island Fumarole 13,-37.52188,177.189942,0009,,WGS84,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
+WI225,MC,White Island Cindys Mistake Pool,-37.52382,177.187982,10,,WGS84,2009-08-12T00:00:00Z,2019-06-29T00:00:00Z
+WI226,MC,White Island Iron Stream,-37.523597,177.188649,8,,WGS84,2004-08-03T00:00:00Z,2014-03-28T00:00:00Z
+WI227,MC,White Island Fumarole 13,-37.52188,177.189942,0009,,WGS84,2007-04-01T00:00:00Z,2019-06-29T00:00:00Z
WI228,MC,White Island Yellow Duck Stream,-37.520946,177.186671,24,,WGS84,2017-06-29T00:00:00Z,2017-06-29T00:00:00Z
diff --git a/network/sites.csv b/network/sites.csv
index b8599e8b4..e449065f8 100644
--- a/network/sites.csv
+++ b/network/sites.csv
@@ -473,8 +473,8 @@ AKSS,20,-43.81091,172.96349,13,,WGS84,Unknown,2011-08-25T00:25:00Z,9999-01-01T00
AKUS,20,-36.853158207,174.770451257,50,,WGS84,Internal GPS Clock,2002-06-19T00:00:00Z,2017-02-16T01:00:00Z
ALLC,10,-38.416928536,175.473483976,575,,WGS84,Unknown,2001-02-13T16:17:00Z,2001-07-07T18:55:00Z
ALRZ,10,-38.562043299,176.343014052,405,,WGS84,Internal GPS Clock,2007-11-07T02:00:00Z,9999-01-01T00:00:00Z
-ALS1R,01,-36.93285,174.576436,370.17,,WGS84,External GPS Device,2023-02-24T01:09:00Z,9999-01-01T00:00:00Z
-ALS1R,02,-36.93285,174.576436,370.17,,WGS84,External GPS Device,2023-02-24T01:09:00Z,9999-01-01T00:00:00Z
+ALS1R,01,-36.93285,174.576436,370.17,,WGS84,External GPS Device,2023-02-24T01:09:00Z,2024-02-25T13:50:01Z
+ALS1R,02,-36.93285,174.576436,370.17,,WGS84,External GPS Device,2023-02-24T01:09:00Z,2024-02-25T13:50:01Z
ALS2R,01,-36.95976268,174.47184355,117.451,,WGS84,External GPS Device,2023-02-23T03:59:00Z,9999-01-01T00:00:00Z
ALS2R,02,-36.95976268,174.47184355,117.451,,WGS84,External GPS Device,2023-02-23T03:59:00Z,9999-01-01T00:00:00Z
AMBC,20,-43.154677722,172.730879511,41,,WGS84,Internal GPS Clock,2004-11-27T00:00:00Z,9999-01-01T00:00:00Z
@@ -1441,12 +1441,13 @@ MXZ,10,-37.562258507,178.306631253,106,,WGS84,Internal GPS Clock,2004-02-29T00:0
MXZ,20,-37.562258507,178.306631253,106,,WGS84,Internal GPS Clock,2004-02-29T00:00:00Z,2011-08-17T22:50:00Z
MXZ,21,-37.562234,178.306695,73,,WGS84,Internal GPS Clock,2011-08-18T00:30:00Z,9999-01-01T00:00:00Z
MYRZ,10,-37.280209088,176.240997301,356,,WGS84,Unknown,2004-05-24T14:55:00Z,9999-01-01T00:00:00Z
-NA000,MC01,-39.156798,175.631871,2197.0,,WGS84,External GPS Device,2003-07-17T00:00:00Z,9999-01-01T00:00:00Z
-NA001,MC01,-39.1562653309,175.631464065,2280,,WGS84,External GPS Device,1978-07-01T00:00:00Z,9999-01-01T00:00:00Z
NA002,01,-39.156415,175.634722,2280,,WGS84,External GPS Device,2021-05-06T04:00:00Z,9999-01-01T00:00:00Z
NA002,02,-39.156415,175.634722,2280,,WGS84,External GPS Device,2021-05-06T04:00:00Z,9999-01-01T00:00:00Z
NA002,03,-39.156415,175.634722,2280,,WGS84,External GPS Device,2021-05-06T04:00:00Z,9999-01-01T00:00:00Z
-NA002,MC01,-39.156415,175.634722,2280,,WGS84,External GPS Device,1973-11-27T00:00:00Z,9999-01-01T00:00:00Z
+NA002,04,-39.156415,175.634722,2280,,WGS84,External GPS Device,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
+NA002,05,-39.156415,175.634722,2280,,WGS84,External GPS Device,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
+NA002,06,-39.156415,175.634722,2280,,WGS84,External GPS Device,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
+NA002,07,-39.156415,175.634722,2280,,WGS84,External GPS Device,2024-03-21T02:10:00Z,9999-01-01T00:00:00Z
NAAF,10,-45.385870012,166.858740112,9999,,WGS84,Unknown,1993-08-14T23:24:00Z,1993-08-17T17:55:00Z
NAAS,20,-39.468735,176.872021,2,,WGS84,Topographic Map,2012-10-10T02:00:00Z,9999-01-01T00:00:00Z
NADF,10,-45.397170337,166.861340071,2,,WGS84,Unknown,1993-03-21T06:46:00Z,1993-06-19T15:05:00Z
@@ -1485,8 +1486,6 @@ NGZ,11,-39.175583868,175.601172722,1452,,WGS84,Internal GPS Clock,1994-05-16T19:
NGZ,12,-39.175583868,175.601172722,1452,,WGS84,Internal GPS Clock,1996-08-17T04:00:00Z,2000-11-28T19:00:00Z
NGZ,30,-39.175583868,175.601172722,1452,,WGS84,External GPS Device,2014-02-25T01:00:00Z,9999-01-01T00:00:00Z
NLMS,20,-41.266523535,173.276835241,9,,WGS84,Internal GPS Clock,2002-10-07T23:00:00Z,9999-01-01T00:00:00Z
-NM001,MC01,-38.53350,176.17212,293,,WGS84,External GPS Device,2010-01-01T00:00:00Z,9999-01-01T00:00:00Z
-NM002,MC01,-38.52966,176.173480,299,,WGS84,External GPS Device,2010-01-01T00:00:00Z,9999-01-01T00:00:00Z
NMCM,10,-42.101102192,172.908436784,930,,WGS84,Unknown,1993-10-21T02:48:00Z,1994-03-04T00:18:00Z
NMEZ,10,-39.4132,173.8775,119,,WGS84,Internal GPS Clock,2009-04-02T04:00:00Z,9999-01-01T00:00:00Z
NMHZ,10,-39.097054929,176.80651785,863.7,,WGS84,Internal GPS Clock,2008-02-13T03:01:00Z,9999-01-01T00:00:00Z
@@ -1576,7 +1575,6 @@ OHSS,20,-43.4446,172.6605,9999,,WGS84,Internal GPS Clock,2011-12-12T02:27:00Z,99
OHUT,10,-39.873760529,176.584692326,150,,WGS84,Unknown,1993-04-12T09:46:00Z,1993-04-26T03:17:00Z
OHWZ,10,-40.2056,175.3151,59,,WGS84,Internal GPS Clock,2011-03-29T00:00:02Z,9999-01-01T00:00:00Z
OIZ,10,-39.044940751,175.39268065,470,,WGS84,Unknown,1992-09-18T09:41:00Z,2004-04-26T16:22:00Z
-OK001,MC01,-38.47326,176.1425,299,,WGS84,External GPS Device,2022-05-05T00:00:00Z,9999-01-01T00:00:00Z
OKAV,10,-38.192726243,176.374395738,480,,WGS84,Unknown,1995-01-12T11:40:00Z,1995-05-16T20:35:00Z
OKCZ,10,-43.72325,173.05951,492.1,,WGS84,External GPS Device,2012-03-01T00:00:00Z,9999-01-01T00:00:00Z
OKTV,10,-38.104424693,176.432996758,360,,WGS84,Unknown,1995-01-26T20:32:00Z,1995-06-07T20:49:00Z
@@ -1602,25 +1600,9 @@ OT001,01,-38.2819,176.3997,380,,WGS84,External GPS Device,2017-12-06T00:30:00Z,9
OT001,02,-38.2819,176.3997,380,,WGS84,External GPS Device,2019-10-11T00:50:00Z,9999-01-01T00:00:00Z
OT001,03,-38.2819,176.3997,380,,WGS84,External GPS Device,2017-12-06T00:30:00Z,9999-01-01T00:00:00Z
OT001,04,-38.2819,176.3997,380,,WGS84,External GPS Device,2019-10-11T00:50:00Z,9999-01-01T00:00:00Z
-OT001,MC01,-38.2819,176.3997,380,,WGS84,External GPS Device,2009-02-04T00:00:00Z,9999-01-01T00:00:00Z
-OT002,MC01,-38.28358,176.39503,380,,WGS84,External GPS Device,2009-02-04T00:00:00Z,9999-01-01T00:00:00Z
-OT010,MC01,-38.038819,176.382087,278,,WGS84,External GPS Device,2003-04-30T00:00:00Z,9999-01-01T00:00:00Z
-OT011,MC01,-38.045405,176.35628,278,,WGS84,External GPS Device,2003-04-30T00:00:00Z,9999-01-01T00:00:00Z
-OT012,MC01,-38.043892,176.35742,279,,WGS84,External GPS Device,2003-04-30T00:00:00Z,9999-01-01T00:00:00Z
OT013,01,-38.03852307,176.54950786,300,,WGS84,External GPS Device,2021-03-17T22:20:00Z,9999-01-01T00:00:00Z
OT013,02,-38.03852307,176.54950786,300,,WGS84,External GPS Device,2021-03-17T22:20:00Z,9999-01-01T00:00:00Z
OT013,03,-38.03852307,176.54950786,300,,WGS84,External GPS Device,2022-06-28T23:00:00Z,9999-01-01T00:00:00Z
-OT013,MC01,-38.03853,176.549492,300,,WGS84,External GPS Device,2003-01-30T00:00:00Z,9999-01-01T00:00:00Z
-OT014,MC01,-38.269847,176.417669,332,,WGS84,External GPS Device,2008-12-18T00:00:00Z,9999-01-01T00:00:00Z
-OT015,MC01,-38.264235,176.418689,332,,WGS84,External GPS Device,2008-12-18T00:00:00Z,9999-01-01T00:00:00Z
-OT016,MC01,-38.243532,176.43328,310,,WGS84,External GPS Device,2003-01-17T00:00:00Z,9999-01-01T00:00:00Z
-OT016,MC02,-38.243532,176.43328,310,,WGS84,External GPS Device,2003-01-17T00:00:00Z,2013-01-17T00:00:00Z
-OT018,MC01,-38.326951,176.304881,370,,WGS84,External GPS Device,2008-12-02T00:00:00Z,9999-01-01T00:00:00Z
-OT019,MC01,-38.327288,176.304462,374,,WGS84,External GPS Device,2008-12-02T00:00:00Z,2014-04-10T00:00:00Z
-OT020,MC01,-38.327358,176.304534,376,,WGS84,External GPS Device,2008-12-02T00:00:00Z,2008-12-02T00:00:00Z
-OT021,MC01,-38.359303,176.368744,340,,WGS84,External GPS Device,2001-04-03T00:00:00Z,9999-01-01T00:00:00Z
-OT022,MC01,-38.088952,176.699564,31,,WGS84,External GPS Device,2005-11-17T00:00:00Z,2018-06-13T00:00:00Z
-OT023,MC01,-38.08889,176.69965,31,,WGS84,External GPS Device,2022-01-28T00:00:00Z,9999-01-01T00:00:00Z
OTAT,40,-45.8143493,170.62939,0,,WGS84,Site Survey,2010-02-25T01:00:00Z,9999-01-01T00:00:00Z
OTAT,41,-45.8143493,170.62939,0,,WGS84,Site Survey,2010-02-25T01:00:00Z,9999-01-01T00:00:00Z
OTAZ,10,-36.949400246,174.924882743,140,,WGS84,Unknown,1996-09-17T04:39:00Z,2009-12-23T00:00:00Z
@@ -1630,7 +1612,6 @@ OTNZ,10,-35.59024,173.82513,142,,WGS84,Internal GPS Clock,2022-12-20T00:35:00Z,9
OTNZ,20,-35.59024,173.82513,142,,WGS84,Internal GPS Clock,2022-12-20T00:35:00Z,9999-01-01T00:00:00Z
OTVZ,10,-39.163113759,175.665073554,1506,,WGS84,Internal GPS Clock,2004-11-18T04:00:00Z,9999-01-01T00:00:00Z
OTVZ,30,-39.163113759,175.665073554,1506,,WGS84,Internal GPS Clock,2013-10-02T00:00:00Z,9999-01-01T00:00:00Z
-OTVZ,MC01,-39.163113759,175.665073554,1506,,WGS84,Internal GPS Clock,2004-11-18T00:00:00Z,2015-04-26T00:00:00Z
OTW,10,-41.275787942,175.00436705,220,,WGS84,Unknown,1992-07-28T05:00:00Z,1998-03-02T00:00:00Z
OTW,11,-41.275787942,175.00436705,220,,WGS84,Unknown,1995-04-03T14:00:00Z,2004-06-08T01:00:00Z
OUZ,10,-35.219688708,173.596133449,63,,WGS84,Internal GPS Clock,1991-03-12T03:26:00Z,9999-01-01T00:00:00Z
@@ -1787,17 +1768,6 @@ RIZ,10,-29.244853,-177.92892,69,,WGS84,Unknown,2009-05-18T00:01:00Z,9999-01-01T0
RIZ,20,-29.244853,-177.92892,69,,WGS84,Unknown,2009-05-18T01:00:00Z,9999-01-01T00:00:00Z
RKAC,20,-43.751461192,172.02314733,107,,WGS84,Internal GPS Clock,2005-02-23T00:00:00Z,9999-01-01T00:00:00Z
RKIA,10,-43.300327621,171.310110376,473,,WGS84,Unknown,1995-11-09T00:00:01Z,1996-04-18T23:59:59Z
-RL001,MC01,-29.2624,-177.91978,10,,WGS84,External GPS Device,2000-03-21T00:00:00Z,9999-01-01T00:00:00Z
-RL002,MC01,-29.25407,-177.92016,8,,WGS84,External GPS Device,2000-03-21T00:00:00Z,9999-01-01T00:00:00Z
-RL003,MC01,-29.24923,-177.91678,0,,WGS84,External GPS Device,2000-03-19T00:00:00Z,9999-01-01T00:00:00Z
-RL004,MC01,-29.26207,-177.91902,10,,WGS84,External GPS Device,2007-03-27T00:00:00Z,9999-01-01T00:00:00Z
-RL005,MC01,-29.26231,-177.92025,10,,WGS84,External GPS Device,2006-08-28T00:00:00Z,9999-01-01T00:00:00Z
-RL006,MC01,-29.264281,-177.921582,10,,WGS84,External GPS Device,1980-08-01T00:00:00Z,2006-03-16T00:00:00Z
-RL006,MC02,-29.264281,-177.921582,10,,WGS84,External GPS Device,1980-08-01T00:00:00Z,2006-03-16T00:00:00Z
-RL006,MC03,-29.264281,-177.921582,10,,WGS84,External GPS Device,1980-08-01T00:00:00Z,2006-03-16T00:00:00Z
-RL006,MC04,-29.264281,-177.921582,10,,WGS84,External GPS Device,1980-08-01T00:00:00Z,2006-03-16T00:00:00Z
-RL006,MC05,-29.264281,-177.921582,10,,WGS84,External GPS Device,1980-08-01T00:00:00Z,2006-03-16T00:00:00Z
-RL007,MC01,-29.243604,-177.929347,31,,WGS84,External GPS Device,1980-08-01T00:00:00Z,2006-03-16T00:00:00Z
RLGLK,04,-29.26247,-177.91978,10,,WGS84,External GPS Device,2023-01-30T02:59:59Z,9999-01-01T00:00:00Z
RLNS,20,-45.687603,166.68593,1070,,WGS84,Internal GPS Clock,2017-05-24T00:00:05Z,9999-01-01T00:00:00Z
ROBM,10,-41.390488228,174.016854052,80,,WGS84,Unknown,1994-03-11T04:15:00Z,1994-03-14T02:31:00Z
@@ -1808,36 +1778,18 @@ ROTC,10,-39.009544575,177.478006428,33,,WGS84,Unknown,2001-01-13T09:23:00Z,2001-
ROTR,10,-38.001923014,176.550998546,389,,WGS84,Unknown,2004-07-20T04:29:00Z,2004-08-15T14:06:00Z
ROTS,20,-38.135724,176.255191,287,,WGS84,Unknown,2013-05-01T01:35:00Z,9999-01-01T00:00:00Z
ROXO,10,-45.47915,169.36919,332,,WGS84,External GPS Device,2014-03-11T22:25:00Z,2014-10-06T22:00:00Z
-RP001,MC01,-38.412777,176.361682,297,,WGS84,External GPS Device,2002-11-18T00:00:00Z,9999-01-01T00:00:00Z
-RP002,MC01,-38.411323,176.36238,297,,WGS84,External GPS Device,2002-11-19T00:00:00Z,9999-01-01T00:00:00Z
-RP003,MC01,-38.41151,176.363077,297,,WGS84,External GPS Device,2002-11-18T00:00:00Z,2002-11-18T00:00:00Z
RPCS,20,-38.438040889,176.343754501,308,,WGS84,Internal GPS Clock,2002-06-24T00:00:00Z,9999-01-01T00:00:00Z
RPZ,10,-43.714607582,171.053864882,453,,WGS84,Internal GPS Clock,2001-06-06T00:00:00Z,9999-01-01T00:00:00Z
RPZ,11,-43.714607582,171.053864882,453,,WGS84,Internal GPS Clock,2020-05-01T07:34:00Z,2021-06-24T23:00:00Z
RPZ,20,-43.714607582,171.053864882,453,,WGS84,Internal GPS Clock,2001-06-06T00:00:00Z,9999-01-01T00:00:00Z
RQGS,20,-41.296527896,174.781154134,22,,WGS84,Internal GPS Clock,1999-08-20T18:00:00Z,2013-08-19T01:00:00Z
-RR001,MC01,-38.142485,176.268123,280,,WGS84,External GPS Device,2002-04-23T00:00:00Z,9999-01-01T00:00:00Z
-RR002,MC01,-38.160474,176.258417,294,,WGS84,External GPS Device,2002-04-23T00:00:00Z,9999-01-01T00:00:00Z
-RR003,MC01,-38.136443,176.257237,284,,WGS84,External GPS Device,2002-04-23T00:00:00Z,9999-01-01T00:00:00Z
-RR004,MC01,-38.131879,176.245052,287,,WGS84,External GPS Device,2002-04-23T00:00:00Z,9999-01-01T00:00:00Z
-RR005,MC01,-38.128862,176.247767,288,,WGS84,External GPS Device,2009-01-09T00:00:00Z,9999-01-01T00:00:00Z
-RR1021,MC01,-38.13841,176.258413,284,,WGS84,External GPS Device,2008-06-25T00:00:00Z,2019-02-06T00:00:00Z
-RR1076,MC01,-38.137369,176.257931,284,,WGS84,External GPS Device,2010-07-20T00:00:00Z,2012-07-06T00:00:00Z
-RR12183,MC01,-38.133856,176.244663,285,,WGS84,External GPS Device,2017-05-04T00:00:00Z,9999-01-01T00:00:00Z
-RR887,MC01,-38.138443,176.258517,284,,WGS84,External GPS Device,2003-01-08T00:00:00Z,2005-12-13T00:00:00Z
-RR913,MC01,-38.133828,176.244377,285,,WGS84,External GPS Device,2003-01-08T00:00:00Z,2016-12-01T00:00:00Z
RRKS,20,-46.147433733,167.472523158,59,,WGS84,Internal GPS Clock,2004-05-11T04:00:00Z,9999-01-01T00:00:00Z
RRRZ,10,-38.33903935,176.514636932,493,,WGS84,External GPS Device,2007-12-11T01:00:00Z,9999-01-01T00:00:00Z
RTKC,10,-38.821238353,176.319892846,716,,WGS84,Unknown,2001-01-12T00:00:01Z,2001-06-26T15:50:00Z
RTZ,10,-38.61544,176.980518,867,,WGS84,Internal GPS Clock,2011-05-05T00:05:00Z,9999-01-01T00:00:00Z
RTZ,20,-38.61544,176.980518,867,,WGS84,Internal GPS Clock,2011-05-05T00:05:00Z,9999-01-01T00:00:00Z
-RU000,MC01,-39.281281,175.564369,2529.0,,WGS84,External GPS Device,2003-05-27T00:00:00Z,9999-01-01T00:00:00Z
RU001,01,-39.2835,175.5654,2529,,WGS84,External GPS Device,2018-05-03T03:50:00Z,9999-01-01T00:00:00Z
RU001,02,-39.2835,175.5654,2529,,WGS84,External GPS Device,2019-03-20T23:00:00Z,9999-01-01T00:00:00Z
-RU001,MC01,-39.2835,175.5654,2529,,WGS84,External GPS Device,1954-01-22T00:00:00Z,9999-01-01T00:00:00Z
-RU001,MC03,-39.2816,175.565,2529,,WGS84,External GPS Device,1998-03-17T00:00:00Z,9999-01-01T00:00:00Z
-RU001,MC04,-39.2798,175.5649,2529,,WGS84,External GPS Device,1991-01-13T00:00:00Z,9999-01-01T00:00:00Z
-RU020,MC01,-39.224927,175.527965,1280,,WGS84,External GPS Device,1990-03-18T00:00:00Z,9999-01-01T00:00:00Z
RUAE,10,-38.079027394,177.949715282,750,,WGS84,Unknown,1994-07-28T07:44:00Z,1994-12-13T16:23:00Z
RUAS,20,-38.147636748,177.0083136,46,,WGS84,Internal GPS Clock,2001-12-04T23:00:00Z,2009-10-27T00:00:00Z
RUGF,10,-44.7243441,167.6433874,1106,,NZGD2000,External GPS Device,2007-10-17T23:59:02Z,2007-11-27T22:00:00Z
@@ -2020,11 +1972,6 @@ TMHS,21,-37.141,175.545,14.5,,WGS84,Internal GPS Clock,2017-07-20T00:00:02Z,9999
TMVZ,10,-39.11561,175.704064,1200,,WGS84,External GPS Device,2013-05-14T00:03:10Z,9999-01-01T00:00:00Z
TMVZ,30,-39.11561,175.704064,1200,,WGS84,External GPS Device,2013-05-14T03:00:00Z,9999-01-01T00:00:00Z
TMWZ,10,-41.106596095,175.890468961,529,,WGS84,External GPS Device,2007-02-23T21:18:00Z,9999-01-01T00:00:00Z
-TO000,MC01,-39.1097012189,175.672065034,1530.0,,WGS84,External GPS Device,2012-08-09T00:00:00Z,9999-01-01T00:00:00Z
-TO001,MC01,-39.1090650632,175.674585616,1530,,WGS84,External GPS Device,2012-09-13T00:00:00Z,9999-01-01T00:00:00Z
-TO001,MC02,-39.1089930208,175.674582822,1530,,WGS84,External GPS Device,2012-11-09T00:00:00Z,2013-12-20T00:00:00Z
-TO001,MC03,-39.1085015938,175.675165363,1530,,WGS84,External GPS Device,2014-03-27T00:00:00Z,2015-04-23T00:00:00Z
-TO002,MC01,-39.1093854136,175.671312369,1530,,WGS84,External GPS Device,2012-09-30T00:00:00Z,9999-01-01T00:00:00Z
TO003,,-39.108982,175.671815,1530,,WGS84,External GPS Device,2022-06-21T23:10:00Z,9999-01-01T00:00:00Z
TO003,01,-39.109701,175.672065,1530,,WGS84,External GPS Device,2021-05-27T04:40:00Z,9999-01-01T00:00:00Z
TO003,02,-39.109701,175.672065,1530,,WGS84,External GPS Device,2021-05-27T04:40:00Z,9999-01-01T00:00:00Z
@@ -2037,41 +1984,21 @@ TO003,08,-39.109538,175.672084,1530,,WGS84,External GPS Device,2022-06-22T03:00:
TO003,09,-39.108982,175.671815,1530,,WGS84,External GPS Device,2022-06-21T23:10:00Z,9999-01-01T00:00:00Z
TO003,10,-39.109311,175.672059,1530,,WGS84,External GPS Device,2022-06-21T23:10:00Z,9999-01-01T00:00:00Z
TO003,11,-39.109538,175.672084,1530,,WGS84,External GPS Device,2022-06-21T23:10:00Z,9999-01-01T00:00:00Z
-TO003,MC01,-39.1097012189,175.672065034,1530,,WGS84,External GPS Device,2012-11-09T00:00:00Z,9999-01-01T00:00:00Z
-TO004,MC01,-39.109030009,175.670326794,1530,,WGS84,External GPS Device,2013-11-01T00:00:00Z,9999-01-01T00:00:00Z
-TO005,MC01,-39.1079870137,175.667914773,1530,,WGS84,External GPS Device,2012-11-09T00:00:00Z,9999-01-01T00:00:00Z
+TO003,12,-39.109538,175.672084,1530,,WGS84,External GPS Device,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+TO003,13,-39.109538,175.672084,1530,,WGS84,External GPS Device,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+TO003,14,-39.109538,175.672084,1530,,WGS84,External GPS Device,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
+TO003,15,-39.109538,175.672084,1530,,WGS84,External GPS Device,2024-03-01T00:20:00Z,9999-01-01T00:00:00Z
TO006,01,-39.10924496,175.66824184,1530,,WGS84,External GPS Device,2021-11-19T00:00:00Z,9999-01-01T00:00:00Z
TO006,02,-39.10924496,175.66824184,1530,,WGS84,External GPS Device,2018-10-08T23:50:00Z,9999-01-01T00:00:00Z
TO006,03,-39.10924496,175.66824184,1530,,WGS84,External GPS Device,2018-08-28T00:30:00Z,9999-01-01T00:00:00Z
TO006,04,-39.10924496,175.66824184,1530,,WGS84,External GPS Device,2022-06-22T00:00:00Z,9999-01-01T00:00:00Z
-TO006,MC01,-39.1091520061,175.668202785,1530,,WGS84,External GPS Device,2013-12-20T00:00:00Z,2014-03-27T00:00:00Z
-TO006,MC02,-39.1092150433,175.668205223,1530,,WGS84,External GPS Device,2014-11-07T00:00:00Z,2015-04-23T00:00:00Z
-TO006,MC03,-39.10924496,175.66824184,1530,,WGS84,External GPS Device,2016-11-24T00:00:00Z,9999-01-01T00:00:00Z
TO015,01,-39.106219222,175.669882497,1530,,WGS84,External GPS Device,2021-11-19T00:30:00Z,9999-01-01T00:00:00Z
TO015,02,-39.106219222,175.669882497,1530,,WGS84,External GPS Device,2018-08-10T00:00:00Z,9999-01-01T00:00:00Z
TO015,03,-39.106219222,175.669882497,1530,,WGS84,External GPS Device,2022-08-01T02:49:00Z,9999-01-01T00:00:00Z
-TO015,MC01,-39.106219222,175.669882497,1530,,WGS84,External GPS Device,2001-09-11T00:00:00Z,9999-01-01T01:40:00Z
-TO030,MC01,-39.1318457,175.651733,1727,,WGS84,External GPS Device,2001-09-11T00:00:00Z,9999-01-01T00:00:00Z
-TO031,MC01,-39.106893,175.647549,1396,,WGS84,External GPS Device,2001-09-11T00:00:00Z,9999-01-01T00:00:00Z
-TO032,MC01,-39.1350028,175.656264,1697,,WGS84,External GPS Device,2008-05-15T00:00:00Z,9999-01-01T00:00:00Z
-TO033,MC01,-39.134455,175.653476,1752,,WGS84,External GPS Device,2003-05-07T00:00:00Z,9999-01-01T00:00:00Z
-TO034,MC01,-39.134096,175.655708,1707,,WGS84,External GPS Device,2003-05-07T00:00:00Z,2003-05-07T00:00:00Z
-TO050,MC01,-39.125853,175.659012,1740,,WGS84,External GPS Device,1981-02-08T00:00:00Z,9999-01-01T00:00:00Z
-TO051,MC01,-39.200689,175.60419,1230,,WGS84,External GPS Device,1981-12-06T00:00:00Z,9999-01-01T00:00:00Z
-TO052,MC01,-39.187799,175.616767,1315,,WGS84,External GPS Device,1981-12-06T00:00:00Z,9999-01-01T00:00:00Z
-TO053,MC01,-39.139467,175.625869,1370,,WGS84,External GPS Device,1989-11-16T00:00:00Z,9999-01-01T00:00:00Z
-TO054,MC01,-39.106545,175.647856,1392,,WGS84,External GPS Device,1989-04-04T00:00:00Z,9999-01-01T00:00:00Z
-TO055,MC01,-39.107912,175.647573,1433,,WGS84,External GPS Device,1984-02-16T00:00:00Z,2001-09-12T00:00:00Z
-TO056,MC01,-39.106196,175.647368,1381,,WGS84,External GPS Device,2001-07-06T00:00:00Z,2005-12-01T00:00:00Z
-TO057,MC01,-39.107894,175.647596,1432,,WGS84,External GPS Device,2005-12-01T00:00:00Z,2007-05-22T00:00:00Z
-TO060,MC01,-39.134251,175.654487,1738,,WGS84,External GPS Device,1981-02-08T00:00:00Z,9999-01-01T00:00:00Z
-TO061,MC01,-39.134123,175.654552,1736,,WGS84,External GPS Device,1981-02-08T00:00:00Z,9999-01-01T00:00:00Z
-TO062,MC01,-39.133667,175.656721,1700,,WGS84,External GPS Device,1981-02-08T00:00:00Z,9999-01-01T00:00:00Z
TO063,01,-39.133929,175.656303,1700,,WGS84,External GPS Device,2021-05-07T00:00:00Z,9999-01-01T00:00:00Z
TO063,02,-39.133929,175.656303,1700,,WGS84,External GPS Device,2021-05-07T00:00:00Z,9999-01-01T00:00:00Z
TO063,03,-39.133929,175.656303,1700,,WGS84,External GPS Device,2021-05-07T00:00:00Z,9999-01-01T00:00:00Z
TO063,04,-39.133929,175.656303,1700,,WGS84,External GPS Device,2023-03-14T01:00:00Z,9999-01-01T00:00:00Z
-TO063,MC01,-39.133929,175.656303,1700,,WGS84,External GPS Device,1994-04-30T00:00:00Z,9999-01-01T00:00:00Z
TOAE,10,-38.122027446,177.575510587,380,,WGS84,Unknown,1994-08-07T11:27:00Z,1994-12-17T20:44:00Z
TOKS,20,-43.82243,172.78084,577,,WGS84,External GPS Device,2013-03-19T00:05:00Z,9999-01-01T00:00:00Z
TON1,10,-39.1319,175.6153,1491,,NZGD2000,Internal GPS Clock,2012-07-20T21:45:00Z,2013-06-07T00:00:00Z
@@ -2096,32 +2023,6 @@ TOVZ,30,-39.3046,175.5266,1672,,WGS84,Internal GPS Clock,2009-02-11T04:00:00Z,99
TOZ,10,-37.73095563,175.501846822,85,,WGS84,Internal GPS Clock,1998-10-15T00:00:00Z,9999-01-01T00:00:00Z
TOZ,20,-37.73095563,175.501846822,85,,WGS84,Internal GPS Clock,1998-10-15T00:00:00Z,2016-01-13T21:00:00Z
TOZ,21,-37.73094,175.50185,117,,WGS84,Internal GPS Clock,2016-01-14T00:00:00Z,9999-01-01T00:00:00Z
-TP001,MC01,-38.7081769673,176.027604531,358.581,,WGS84,External GPS Device,1983-07-19T00:00:00Z,9999-01-01T00:00:00Z
-TP002,MC01,-38.886879354,175.958538482,358.042,,WGS84,External GPS Device,1983-06-13T00:00:00Z,9999-01-01T00:00:00Z
-TP003,MC01,-38.8129247167,175.996271373,358.21,,WGS84,External GPS Device,1979-07-04T00:00:00Z,9999-01-01T00:00:00Z
-TP004,MC01,-38.6807308825,175.81912044,357.511,,WGS84,External GPS Device,1983-05-25T00:00:00Z,9999-01-01T00:00:00Z
-TP005,MC01,-38.6632868402,175.921572713,358.417,,WGS84,External GPS Device,1979-07-04T00:00:00Z,9999-01-01T00:00:00Z
-TP006,MC01,-38.7115885092,175.976009824,358.502,,WGS84,External GPS Device,1985-12-10T00:00:00Z,9999-01-01T00:00:00Z
-TP007,MC01,-38.9315773413,175.874797252,357.721,,WGS84,External GPS Device,1979-07-04T00:00:00Z,9999-01-01T00:00:00Z
-TP008,MC01,-38.8558085341,175.943852732,357.928,,WGS84,External GPS Device,1986-07-06T00:00:00Z,9999-01-01T00:00:00Z
-TP009,MC01,-38.7243532357,175.979121787,358.175,,WGS84,External GPS Device,1985-12-10T00:00:00Z,9999-01-01T00:00:00Z
-TP010,MC01,-38.9002105343,175.762487952,359.063,,WGS84,External GPS Device,1983-06-13T00:00:00Z,9999-01-01T00:00:00Z
-TP011,MC01,-38.6606420484,175.853465328,357.684,,WGS84,External GPS Device,1985-12-10T00:00:00Z,9999-01-01T00:00:00Z
-TP012,MC01,-38.736008151,176.010605527,357.687,,WGS84,External GPS Device,1982-08-16T00:00:00Z,9999-01-01T00:00:00Z
-TP013,MC01,-38.7948922703,176.073977533,357.128,,WGS84,External GPS Device,1979-07-04T00:00:00Z,9999-01-01T00:00:00Z
-TP015,MC01,-38.8194227789,175.81099532,358.087,,WGS84,External GPS Device,1979-07-04T00:00:00Z,9999-01-01T00:00:00Z
-TP016,MC01,-38.7046986938,175.916776277,357.259,,WGS84,External GPS Device,1983-06-13T00:00:00Z,9999-01-01T00:00:00Z
-TP017,MC01,-38.7783103715,175.78571152,358.15,,WGS84,External GPS Device,1986-04-14T00:00:00Z,9999-01-01T00:00:00Z
-TP018,MC01,-38.678601988,175.87439643,357.594,,WGS84,External GPS Device,1985-12-10T00:00:00Z,9999-01-01T00:00:00Z
-TP019,MC01,-38.7282181573,175.743966088,357.675,,WGS84,External GPS Device,1983-05-25T00:00:00Z,9999-01-01T00:00:00Z
-TP020,MC01,-38.9508362533,175.745287962,357.399,,WGS84,External GPS Device,1985-02-01T00:00:00Z,9999-01-01T00:00:00Z
-TP021,MC01,-38.7108395366,175.961572465,357.98,,WGS84,External GPS Device,1985-12-10T00:00:00Z,9999-01-01T00:00:00Z
-TP022,MC01,-38.6862807812,175.963024087,359.655,,WGS84,External GPS Device,1983-05-09T00:00:00Z,9999-01-01T00:00:00Z
-TP041,MC01,-38.968018,175.764548,360,,WGS84,External GPS Device,2002-11-28T00:00:00Z,9999-01-01T00:00:00Z
-TP042,MC01,-38.968055,175.763013,360,,WGS84,External GPS Device,2002-11-28T00:00:00Z,9999-01-01T00:00:00Z
-TP043,MC01,-38.967761,175.76508,360,,WGS84,External GPS Device,2002-11-28T00:00:00Z,2015-11-02T00:00:00Z
-TP044,MC01,-38.968739,175.762336,368,,WGS84,External GPS Device,2015-11-02T00:00:00Z,2015-11-02T00:00:00Z
-TP045,MC01,-38.966988,175.763895,360,,WGS84,External GPS Device,2002-11-28T00:00:00Z,2005-12-19T00:00:00Z
TPLC,20,-43.549997156,172.471954205,39,,WGS84,Internal GPS Clock,2005-02-21T00:00:00Z,2020-12-17T00:10:00Z
TPPS,20,-38.686325129,176.067470239,380,,WGS84,Internal GPS Clock,1999-08-30T16:50:00Z,2005-11-04T00:00:00Z
TPPS,21,-38.686325129,176.067470239,380,,WGS84,Internal GPS Clock,2005-12-21T00:00:00Z,9999-01-01T00:00:00Z
@@ -2231,7 +2132,8 @@ WAZ,10,-39.754644424,174.985532904,382,,WGS84,Internal GPS Clock,2003-07-18T00:0
WAZ,20,-39.754644424,174.985532904,382,,WGS84,Internal GPS Clock,2003-07-18T00:00:00Z,9999-01-01T00:00:00Z
WBCS,20,-41.755660519,171.599811806,10,,WGS84,Internal GPS Clock,2002-04-16T00:00:00Z,9999-01-01T00:00:00Z
WBFS,20,-40.400881282,176.311146962,130,,WGS84,Internal GPS Clock,2002-01-27T00:30:00Z,9999-01-01T00:00:00Z
-WBHS,20,-35.714958191,174.31694004,41,,WGS84,Internal GPS Clock,2002-06-18T00:00:00Z,9999-01-01T00:00:00Z
+WBHS,20,-35.714958191,174.31694004,41,,WGS84,Internal GPS Clock,2002-06-18T00:00:00Z,2022-05-18T07:28:00Z
+WBHS,21,-35.716057,174.316960,41,,WGS84,Internal GPS Clock,2023-01-17T23:15:00Z,9999-01-01T00:00:00Z
WBR,10,-40.406271349,176.287986651,215,,WGS84,Unknown,1990-05-13T23:00:00Z,1990-05-17T14:00:00Z
WCDS,20,-39.933638357,175.047992977,9,,WGS84,Internal GPS Clock,2000-03-21T02:00:00Z,9999-01-01T00:00:00Z
WCFS,20,-41.29315,174.7847889,8,,WGS84,Internal GPS Clock,2016-12-02T01:42:00Z,2018-03-15T22:30:00Z
@@ -2291,197 +2193,32 @@ WHZ,10,-45.892427899,167.947031165,345,,WGS84,Internal GPS Clock,1993-03-22T15:4
WHZ,11,-45.892427899,167.947031165,345,,WGS84,Internal GPS Clock,2001-04-08T10:20:00Z,2001-10-08T17:24:00Z
WHZ,20,-45.892427899,167.947031165,345,,WGS84,Internal GPS Clock,2001-04-05T00:00:00Z,2014-06-05T05:00:00Z
WHZ,21,-45.892472,167.947045,338,,WGS84,Internal GPS Clock,2014-06-05T05:00:01Z,9999-01-01T00:00:00Z
-WI000,MC01,-37.521716,177.183495,20.0,,WGS84,External GPS Device,2003-03-04T00:00:00Z,9999-01-01T00:00:00Z
-WI001,MC01,-37.5258669984,177.19142059,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2012-10-11T00:00:00Z
-WI002,MC01,-37.5251955222,177.19250252,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2012-10-11T00:00:00Z
-WI003,MC01,-37.5251178978,177.190946481,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2012-10-11T00:00:00Z
-WI004,MC01,-37.5250565783,177.189923665,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2012-10-11T00:00:00Z
-WI005,MC01,-37.5249052376,177.191330426,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2015-12-08T00:00:00Z
-WI006,MC01,-37.5248340658,177.191790585,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2012-10-11T00:00:00Z
-WI007,MC01,-37.5248198517,177.190226933,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2012-10-11T00:00:00Z
-WI008,MC01,-37.5243511559,177.193381805,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2012-10-11T00:00:00Z
-WI009,MC01,-37.5244232148,177.190464236,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2012-10-11T00:00:00Z
WI01,10,-37.51675,177.19282,51,,WGS84,External GPS Device,2011-06-13T00:01:00Z,2018-05-19T00:00:00Z
-WI010,MC01,-37.5243499592,177.189033043,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2015-12-08T00:00:00Z
-WI011,MC01,-37.5241956782,177.191979779,0,,WGS84,External GPS Device,2002-12-17T00:00:00Z,2012-10-11T00:00:00Z
-WI012,MC01,-37.5242584388,177.193206515,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2012-10-11T00:00:00Z
-WI013,MC01,-37.5239514332,177.191025561,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2012-10-11T00:00:00Z
-WI014,MC01,-37.5238746235,177.190420868,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2015-12-08T00:00:00Z
-WI015,MC01,-37.5239028763,177.188440706,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2006-06-21T00:00:00Z
-WI016,MC01,-37.5236981797,177.189096908,0,,WGS84,External GPS Device,2002-12-17T00:00:00Z,2006-06-21T00:00:00Z
-WI017,MC01,-37.5236487789,177.188482495,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2019-12-04T00:00:00Z
-WI018,MC01,-37.5235024789,177.189266674,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2019-12-04T00:00:00Z
-WI019,MC01,-37.5234042972,177.191673074,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2012-10-11T00:00:00Z
WI02,10,-37.5218,177.1924,124,,WGS84,Internal GPS Clock,2011-06-14T00:45:02Z,2018-05-19T00:00:00Z
-WI020,MC01,-37.5233910989,177.192272505,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2012-10-11T00:00:00Z
-WI021,MC01,-37.5233289097,177.193220135,0,,WGS84,External GPS Device,2002-12-17T00:00:00Z,2012-10-11T00:00:00Z
-WI022,MC01,-37.5235135715,177.190184613,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2012-10-11T00:00:00Z
-WI023,MC01,-37.5235141888,177.187976356,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2019-12-04T00:00:00Z
-WI024,MC01,-37.5234444849,177.187666524,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2019-12-04T00:00:00Z
-WI025,MC01,-37.5230934866,177.191054715,0,,WGS84,External GPS Device,2002-12-17T00:00:00Z,2012-10-11T00:00:00Z
-WI026,MC01,-37.5229706048,177.192179988,0,,WGS84,External GPS Device,2002-12-17T00:00:00Z,2012-10-11T00:00:00Z
-WI027,MC01,-37.5231424382,177.186810879,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2019-12-04T00:00:00Z
-WI028,MC01,-37.5230649982,177.186953578,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2012-10-11T00:00:00Z
-WI029,MC01,-37.522900724,177.189684516,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2019-12-04T00:00:00Z
WI03,10,-37.5116,177.1812,60,,WGS84,Internal GPS Clock,2011-06-13T22:27:02Z,2018-05-19T00:00:00Z
-WI030,MC01,-37.5229944886,177.188614164,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2019-12-04T00:00:00Z
-WI031,MC01,-37.5229768939,177.187627906,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2019-12-04T00:00:00Z
-WI032,MC01,-37.5226589381,177.186714716,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2006-10-31T00:00:00Z
-WI033,MC01,-37.5225494776,177.186991439,0,,WGS84,External GPS Device,2002-12-17T00:00:00Z,2019-12-04T00:00:00Z
-WI034,MC01,-37.5224054929,177.191365583,0,,WGS84,External GPS Device,2002-12-17T00:00:00Z,2012-10-11T00:00:00Z
-WI035,MC01,-37.5225011395,177.187566163,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2019-12-04T00:00:00Z
-WI036,MC01,-37.5223420853,177.189912354,0,,WGS84,External GPS Device,2002-12-17T00:00:00Z,2006-02-13T00:00:00Z
-WI037,MC01,-37.5223175948,177.190329927,0,,WGS84,External GPS Device,2002-12-17T00:00:00Z,2006-02-13T00:00:00Z
-WI038,MC01,-37.5223694616,177.186493984,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2012-10-11T00:00:00Z
-WI039,MC01,-37.5221851026,177.188793398,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2019-12-04T00:00:00Z
WI04,10,-37.5265,177.1798,130,,WGS84,Internal GPS Clock,2011-06-13T23:05:02Z,2018-05-19T00:00:00Z
-WI040,MC01,-37.5222437022,177.188185302,0,,WGS84,External GPS Device,2002-12-17T00:00:00Z,2019-12-04T00:00:00Z
-WI041,MC01,-37.5221740122,177.18933632,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2019-12-04T00:00:00Z
-WI042,MC01,-37.5219429301,177.188269663,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2019-12-04T00:00:00Z
-WI043,MC01,-37.521754939,177.18652607,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2012-10-11T00:00:00Z
-WI044,MC01,-37.5215368824,177.189004686,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2012-10-11T00:00:00Z
-WI045,MC01,-37.5216318875,177.187413508,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2015-12-08T00:00:00Z
-WI046,MC01,-37.5215640589,177.186809363,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2015-12-08T00:00:00Z
-WI047,MC01,-37.5215138509,177.188165345,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2015-12-08T00:00:00Z
-WI048,MC01,-37.5213574841,177.187272926,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2015-12-08T00:00:00Z
-WI049,MC01,-37.521178752,177.188202405,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2012-10-11T00:00:00Z
WI05,10,-37.514,177.18,100,,WGS84,Internal GPS Clock,2011-06-13T21:40:02Z,2011-11-23T00:00:00Z
-WI050,MC01,-37.5211845927,177.187070324,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2012-10-11T00:00:00Z
-WI051,MC01,-37.5211190695,177.186647504,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2015-12-08T00:00:00Z
-WI052,MC01,-37.5208207947,177.186177133,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2012-10-11T00:00:00Z
-WI053,MC01,-37.5203988781,177.188315417,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2012-10-11T00:00:00Z
-WI054,MC01,-37.5206722241,177.187753843,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2012-10-11T00:00:00Z
-WI055,MC01,-37.5204488725,177.186721637,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2012-10-11T00:00:00Z
-WI056,MC01,-37.5198025442,177.187125557,0,,WGS84,External GPS Device,2002-11-27T00:00:00Z,2006-02-13T00:00:00Z
-WI057,MC01,-37.5208737886,177.187912822,0,,WGS84,External GPS Device,2003-04-08T00:00:00Z,2012-10-11T00:00:00Z
-WI058,MC01,-37.5236835184,177.188031539,0,,WGS84,External GPS Device,2016-10-14T00:00:00Z,2019-12-04T00:00:00Z
-WI059,MC01,-37.5238472013,177.188482754,0,,WGS84,External GPS Device,2016-10-14T00:00:00Z,2019-12-04T00:00:00Z
WI06,10,-37.5165,177.177,341,,WGS84,Internal GPS Clock,2011-06-13T01:12:02Z,2011-11-23T00:00:00Z
-WI060,MC01,-37.5236872947,177.188903754,0,,WGS84,External GPS Device,2016-10-14T00:00:00Z,2019-12-04T00:00:00Z
-WI061,MC01,-37.52370739,177.189335262,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI062,MC01,-37.5236069234,177.189612511,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI063,MC01,-37.5233532442,177.189642995,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI064,MC01,-37.5233599401,177.188975237,0,,WGS84,External GPS Device,2016-10-14T00:00:00Z,2019-12-04T00:00:00Z
-WI065,MC01,-37.5234367528,177.188606011,0,,WGS84,External GPS Device,2016-10-14T00:00:00Z,2019-12-04T00:00:00Z
-WI066,MC01,-37.5233953066,177.188263855,0,,WGS84,External GPS Device,2016-10-14T00:00:00Z,2019-12-04T00:00:00Z
-WI067,MC01,-37.5232169608,177.187234235,0,,WGS84,External GPS Device,2016-10-14T00:00:00Z,2019-12-04T00:00:00Z
-WI068,MC01,-37.5232129907,177.187585064,0,,WGS84,External GPS Device,2016-10-14T00:00:00Z,2019-12-04T00:00:00Z
-WI069,MC01,-37.5231828559,177.187911716,0,,WGS84,External GPS Device,2016-10-14T00:00:00Z,2019-12-04T00:00:00Z
WI07,10,-37.518,177.1778,288,,WGS84,Internal GPS Clock,2011-06-13T00:12:02Z,2011-11-23T00:00:00Z
-WI070,MC01,-37.5231569049,177.188125367,0,,WGS84,External GPS Device,2016-10-14T00:00:00Z,2019-12-04T00:00:00Z
-WI071,MC01,-37.5231389099,177.188611271,0,,WGS84,External GPS Device,2016-10-14T00:00:00Z,2019-12-04T00:00:00Z
-WI072,MC01,-37.5231160983,177.188983648,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI073,MC01,-37.5231223788,177.189301102,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI074,MC01,-37.5231089837,177.189662704,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI075,MC01,-37.5228716297,177.189252486,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI076,MC01,-37.5228931866,177.188914011,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI077,MC01,-37.5228986229,177.188280157,0,,WGS84,External GPS Device,2016-10-14T00:00:00Z,2019-12-04T00:00:00Z
-WI078,MC01,-37.522930014,177.187919606,0,,WGS84,External GPS Device,2016-10-14T00:00:00Z,2019-12-04T00:00:00Z
-WI079,MC01,-37.5229486288,177.187173276,0,,WGS84,External GPS Device,2016-10-14T00:00:00Z,2019-12-04T00:00:00Z
WI08,10,-37.52,177.1778,304,,WGS84,External GPS Device,2011-06-13T22:06:12Z,2011-11-23T00:00:00Z
-WI080,MC01,-37.5229421271,177.186617997,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI081,MC01,-37.522726541,177.186594092,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI082,MC01,-37.5227525018,177.186867394,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI083,MC01,-37.5227240425,177.187148844,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI084,MC01,-37.522711491,177.187487845,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI085,MC01,-37.5226886829,177.187860221,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI086,MC01,-37.5226658737,177.188232596,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI087,MC01,-37.5226554115,177.188515097,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI088,MC01,-37.5226305074,177.188943971,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI089,MC01,-37.5226200435,177.189226472,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
WI09,10,-37.522,177.178,287,,WGS84,Internal GPS Clock,2011-06-13T22:56:02Z,2011-11-23T00:00:00Z
-WI090,MC01,-37.5225788109,177.189609095,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI091,MC01,-37.5223607128,177.189166031,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI092,MC01,-37.5223998512,177.188839909,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI093,MC01,-37.5224124067,177.18850091,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI094,MC01,-37.5224471462,177.188049961,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI095,MC01,-37.5225182817,177.186615912,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI096,MC01,-37.5222608383,177.186748106,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI097,MC01,-37.5222662882,177.187088156,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI098,MC01,-37.5222258995,177.187448178,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI099,MC01,-37.5222231841,177.187765102,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
WI10,10,-37.5183,177.1794,319,,WGS84,Internal GPS Clock,2011-06-13T02:18:02Z,2011-11-23T00:00:00Z
-WI100,MC01,-37.5258858363,177.19139904,0,,WGS84,External GPS Device,1967-11-01T00:00:00Z,2012-12-10T00:00:00Z
-WI101,MC01,-37.5250484154,177.189900538,2,,WGS84,External GPS Device,1967-07-12T00:00:00Z,2012-12-10T00:00:00Z
-WI102,MC01,-37.5236877091,177.188405495,5,,WGS84,External GPS Device,1967-07-10T00:00:00Z,2012-12-10T00:00:00Z
-WI103,MC01,-37.5235240259,177.187954281,7,,WGS84,External GPS Device,1978-12-07T00:00:00Z,1996-05-14T00:00:00Z
-WI103,MC02,-37.5235240259,177.187954281,9,,WGS84,External GPS Device,1996-11-04T00:00:00Z,1999-11-23T00:00:00Z
-WI103,MC03,-37.5235240259,177.187954281,10,,WGS84,External GPS Device,2000-02-14T00:00:00Z,2012-12-10T00:00:00Z
-WI104,MC01,-37.5233871364,177.187753773,8,,WGS84,External GPS Device,1978-12-07T00:00:00Z,2000-04-18T00:00:00Z
-WI104,MC02,-37.5234179028,177.187653647,10,,WGS84,External GPS Device,2000-08-24T00:00:00Z,2012-12-10T00:00:00Z
-WI105,MC01,-37.5224479753,177.187540411,8,,WGS84,External GPS Device,1967-07-12T00:00:00Z,2012-12-10T00:00:00Z
-WI106,MC01,-37.521569723,177.187387232,14,,WGS84,External GPS Device,1979-04-21T00:00:00Z,2012-12-10T00:00:00Z
-WI107,MC01,-37.5208746255,177.187890223,8,,WGS84,External GPS Device,1969-12-05T00:00:00Z,1976-12-13T00:00:00Z
-WI107,MC02,-37.5208746255,177.187890223,10,,WGS84,External GPS Device,1981-12-02T00:00:00Z,2012-12-10T00:00:00Z
-WI108,MC01,-37.5216247914,177.18906644,7,,WGS84,External GPS Device,1967-07-12T00:00:00Z,1976-12-13T00:00:00Z
-WI108,MC02,-37.5216247914,177.18906644,8,,WGS84,External GPS Device,1979-11-28T00:00:00Z,2012-12-10T00:00:00Z
-WI109,MC01,-37.5228818864,177.189706065,5,,WGS84,External GPS Device,1967-07-12T00:00:00Z,1976-12-13T00:00:00Z
-WI109,MC02,-37.5228818864,177.189706065,8,,WGS84,External GPS Device,1978-12-07T00:00:00Z,2012-12-10T00:00:00Z
-WI110,MC01,-37.523311773,177.192222572,3,,WGS84,External GPS Device,1967-07-12T00:00:00Z,2012-12-10T00:00:00Z
-WI111,MC01,-37.524695487,177.192609196,0,,WGS84,External GPS Device,1967-07-12T00:00:00Z,2012-12-10T00:00:00Z
-WI112,MC01,-37.5231097841,177.186718377,13,,WGS84,External GPS Device,1967-07-12T00:00:00Z,1977-01-25T00:00:00Z
-WI112,MC02,-37.5231097841,177.186718377,15,,WGS84,External GPS Device,1981-09-18T00:00:00Z,1998-08-31T00:00:00Z
-WI112,MC03,-37.5231097841,177.186718377,16,,WGS84,External GPS Device,1999-11-23T00:00:00Z,2012-12-10T00:00:00Z
-WI113,MC01,-37.5230168539,177.186792225,15,,WGS84,External GPS Device,1981-09-18T00:00:00Z,2012-12-10T00:00:00Z
-WI114,MC01,-37.522662703,177.186613016,16,,WGS84,External GPS Device,1981-12-02T00:00:00Z,1998-08-04T00:00:00Z
-WI114,MC02,-37.522662703,177.186613016,18,,WGS84,External GPS Device,2000-02-14T00:00:00Z,2012-12-10T00:00:00Z
-WI115,MC01,-37.5224079722,177.186428285,20,,WGS84,External GPS Device,1992-12-08T00:00:00Z,1996-04-18T00:00:00Z
-WI115,MC02,-37.5224079722,177.186428285,18,,WGS84,External GPS Device,1999-11-23T00:00:00Z,2012-12-10T00:00:00Z
-WI116,MC01,-37.5215648956,177.186786763,16,,WGS84,External GPS Device,1967-07-12T00:00:00Z,1976-12-13T00:00:00Z
-WI116,MC02,-37.5215648956,177.186786763,21,,WGS84,External GPS Device,1984-02-17T00:00:00Z,1988-12-02T00:00:00Z
-WI116,MC03,-37.5215648956,177.186786763,21,,WGS84,External GPS Device,1989-07-31T00:00:00Z,2012-12-10T00:00:00Z
-WI117,MC01,-37.521747612,177.186480346,10,,WGS84,External GPS Device,1967-07-12T00:00:00Z,1976-12-13T00:00:00Z
-WI117,MC02,-37.521747612,177.186480346,17,,WGS84,External GPS Device,1981-12-02T00:00:00Z,2012-12-10T00:00:00Z
-WI118,MC01,-37.5213055748,177.187213275,14,,WGS84,External GPS Device,1981-09-18T00:00:00Z,2012-12-10T00:00:00Z
-WI119,MC01,-37.5208040492,177.186142183,20,,WGS84,External GPS Device,1986-10-29T00:00:00Z,1987-06-11T00:00:00Z
-WI119,MC02,-37.5208040492,177.186142183,23,,WGS84,External GPS Device,1988-06-15T00:00:00Z,2000-04-18T00:00:00Z
-WI119,MC03,-37.5208040492,177.186142183,23,,WGS84,External GPS Device,2000-09-19T00:00:00Z,2012-12-10T00:00:00Z
WI12,10,-37.52564,177.19278,9,,WGS84,External GPS Device,2011-06-13T00:01:02Z,2011-11-23T00:00:00Z
-WI120,MC01,-37.5210181785,177.186449106,19,,WGS84,External GPS Device,1992-05-13T00:00:00Z,2000-04-18T00:00:00Z
-WI120,MC02,-37.5210181785,177.186449106,21,,WGS84,External GPS Device,2000-09-19T00:00:00Z,2012-12-10T00:00:00Z
-WI121,MC01,-37.5211339384,177.186976774,16,,WGS84,External GPS Device,1969-12-05T00:00:00Z,1976-12-13T00:00:00Z
-WI121,MC02,-37.5211339384,177.186976774,17,,WGS84,External GPS Device,1981-09-18T00:00:00Z,2000-04-18T00:00:00Z
-WI121,MC03,-37.5211339384,177.186976774,19,,WGS84,External GPS Device,2000-09-19T00:00:00Z,2012-12-10T00:00:00Z
-WI122,MC01,-37.5204243819,177.186652263,22,,WGS84,External GPS Device,1997-01-31T00:00:00Z,2000-04-18T00:00:00Z
-WI122,MC02,-37.5204243819,177.186652263,23,,WGS84,External GPS Device,2000-09-19T00:00:00Z,2012-12-10T00:00:00Z
WI13,10,-37.52353,177.19058,17,,WGS84,External GPS Device,2011-06-13T00:00:02Z,2018-05-19T00:00:00Z
WI14,10,-37.52216,177.18849,25,,WGS84,External GPS Device,2011-06-13T00:00:02Z,2011-11-23T00:00:00Z
WI15,10,-37.52165,177.18668,33,,WGS84,External GPS Device,2011-06-13T00:00:02Z,2011-11-23T00:00:00Z
-WI150,MC01,-37.5219450154,177.187726217,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI151,MC01,-37.5219933542,177.187151497,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI152,MC01,-37.5220140682,177.186835624,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI153,MC01,-37.5217836251,177.186969392,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI154,MC01,-37.521777564,177.187376714,0,,WGS84,External GPS Device,2016-11-09T00:00:00Z,2019-12-04T00:00:00Z
-WI200,MC01,-37.522837,177.185932,15,,WGS84,External GPS Device,1995-11-15T00:00:00Z,9999-01-01T00:00:00Z
-WI210,MC01,-37.5239,177.188,20,,WGS84,External GPS Device,2003-04-08T00:00:00Z,9999-01-01T00:00:00Z
-WI211,MC01,-37.5217,177.1837,-5,,WGS84,External GPS Device,2014-01-15T00:00:00Z,2018-07-18T00:00:00Z
-WI220,MC01,-37.526413,177.191769,1,,WGS84,External GPS Device,2011-03-11T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC02,-37.524239,177.190057,1,,WGS84,External GPS Device,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
-WI220,MC03,-37.524196,177.189998,1,,WGS84,External GPS Device,2004-10-15T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC01,-37.525391,177.190384,4,,WGS84,External GPS Device,1995-11-15T00:00:00Z,2007-07-25T00:00:00Z
-WI221,MC02,-37.525391,177.190384,4,,WGS84,External GPS Device,2005-03-08T00:00:00Z,2013-07-09T00:00:00Z
-WI221,MC03,-37.525443,177.190444,4,,WGS84,External GPS Device,2015-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WI221,MC04,-37.525443,177.190444,4,,WGS84,External GPS Device,2014-01-16T00:00:00Z,9999-01-01T00:00:00Z
-WI222,MC01,-37.523359,177.188748,8,,WGS84,External GPS Device,2004-09-17T00:00:00Z,2015-02-25T00:00:00Z
-WI223,MC01,-37.524153,177.188013,8,,WGS84,External GPS Device,2005-08-26T00:00:00Z,9999-01-01T00:00:00Z
-WI224,MC01,-37.523392,177.186082,10,,WGS84,External GPS Device,2005-11-08T00:00:00Z,2012-06-11T00:00:00Z
-WI225,MC01,-37.52382,177.187982,10,,WGS84,External GPS Device,2009-08-12T00:00:00Z,9999-01-01T00:00:00Z
-WI225,MC02,-37.52382,177.187982,10,,WGS84,External GPS Device,2009-11-20T00:00:00Z,9999-01-01T00:00:00Z
-WI226,MC01,-37.523597,177.188649,8,,WGS84,External GPS Device,2004-08-03T00:00:00Z,9999-01-01T00:00:00Z
WI227,02,-37.52188,177.189942,9,,WGS84,External GPS Device,2019-04-10T01:40:00Z,9999-01-01T00:00:00Z
WI227,03,-37.52188,177.189942,9,,WGS84,External GPS Device,2019-06-17T23:40:00Z,9999-01-01T00:00:00Z
-WI227,MC01,-37.52188,177.189942,9,,WGS84,External GPS Device,2007-04-01T00:00:00Z,9999-01-01T00:00:00Z
-WI228,MC01,-37.520946,177.186671,24,,WGS84,External GPS Device,2017-06-29T00:00:00Z,2017-06-29T00:00:00Z
WIAZ,10,-36.793,175.1339,255,,WGS84,Internal GPS Clock,2010-07-27T03:15:00Z,9999-01-01T00:00:00Z
WICS,20,-39.035634969,177.414705559,10,,WGS84,Internal GPS Clock,2002-04-18T00:00:00Z,2006-02-21T10:00:00Z
WIGC,20,-42.701186545,172.800302583,247,,WGS84,Internal GPS Clock,2004-11-27T00:00:00Z,9999-01-01T00:00:00Z
WILA,10,-43.052021335,171.312611686,9999,,WGS84,Unknown,1994-06-21T21:27:00Z,1994-06-28T23:34:00Z
-WIZ,10,-37.526515575,177.189407876,40,,WGS84,Unknown,1988-11-16T07:00:00Z,9999-01-01T00:00:00Z
+WIZ,10,-37.526515575,177.189407876,40,,WGS84,Unknown,1988-11-16T07:00:00Z,2023-12-01T00:00:00Z
WIZ,11,-37.526515575,177.189407876,40,,WGS84,Unknown,1995-03-24T00:00:00Z,1999-06-20T05:00:00Z
WIZ,12,-37.526515575,177.189407876,40,,WGS84,Unknown,1988-03-25T22:00:00Z,2000-11-28T19:00:00Z
-WIZ,30,-37.526415,177.188971,118,,WGS84,External GPS Device,2002-11-28T22:23:00Z,9999-01-01T00:00:00Z
-WIZ,31,-37.526407,177.188823,123,,WGS84,External GPS Device,2015-01-22T00:00:00Z,9999-01-01T00:00:00Z
-WIZ,32,-37.526426,177.189045,126,,WGS84,External GPS Device,2015-01-22T00:00:00Z,9999-01-01T00:00:00Z
+WIZ,30,-37.526415,177.188971,118,,WGS84,External GPS Device,2002-11-28T22:23:00Z,2023-12-01T00:00:00Z
+WIZ,31,-37.526407,177.188823,123,,WGS84,External GPS Device,2015-01-22T00:00:00Z,2023-12-01T00:00:00Z
+WIZ,32,-37.526426,177.189045,126,,WGS84,External GPS Device,2015-01-22T00:00:00Z,2023-12-01T00:00:00Z
WK1,10,-38.643234312,176.08099056,343,,WGS84,Unknown,1987-08-31T00:09:00Z,1989-07-25T04:04:00Z
WK2,10,-38.621233807,176.047990236,456,,WGS84,Unknown,1987-10-22T16:48:00Z,1989-07-31T17:20:00Z
WK3,10,-38.603233449,176.045190267,457,,WGS84,Unknown,1987-09-02T05:23:00Z,1989-07-30T23:30:00Z
@@ -2544,12 +2281,12 @@ WRAV,10,-38.244927266,176.3863957,460,,WGS84,Unknown,1995-01-13T10:42:00Z,1998-0
WRCS,20,-40.950352011,175.647816501,120,,WGS84,Internal GPS Clock,2001-12-07T00:00:00Z,9999-01-01T00:00:00Z
WROM,10,-41.551595229,175.395970905,50,,WGS84,Unknown,1993-11-04T10:07:00Z,1994-03-06T14:25:00Z
WSFC,20,-43.837332321,171.611011502,162,,WGS84,Internal GPS Clock,2005-02-25T00:00:00Z,9999-01-01T00:00:00Z
-WSRZ,10,-37.51811,177.177805,290.4,,WGS84,Internal GPS Clock,2013-04-08T04:00:00Z,9999-01-01T00:00:00Z
-WSRZ,30,-37.51811,177.177805,290.4,,WGS84,Internal GPS Clock,2013-04-08T04:00:00Z,9999-01-01T00:00:00Z
+WSRZ,10,-37.51811,177.177805,290.4,,WGS84,Internal GPS Clock,2013-04-08T04:00:00Z,2023-12-01T00:00:00Z
+WSRZ,30,-37.51811,177.177805,290.4,,WGS84,Internal GPS Clock,2013-04-08T04:00:00Z,2023-12-01T00:00:00Z
WSRZ,31,-37.5180333,177.1778667,290.4,,WGS84,Unknown,2014-11-20T02:00:00Z,2018-05-28T21:00:00Z
WSRZ,32,-37.51815,177.1777833,290.4,,WGS84,Unknown,2014-11-20T02:00:00Z,2018-05-28T21:00:00Z
-WSRZ,33,-37.518282,177.178149,290.4,,WGS84,Unknown,2018-05-28T22:15:00Z,9999-01-01T00:00:00Z
-WSRZ,34,-37.517796,177.177807,290.4,,WGS84,Unknown,2018-05-28T22:15:00Z,9999-01-01T00:00:00Z
+WSRZ,33,-37.518282,177.178149,290.4,,WGS84,Unknown,2018-05-28T22:15:00Z,2023-12-01T00:00:00Z
+WSRZ,34,-37.517796,177.177807,290.4,,WGS84,Unknown,2018-05-28T22:15:00Z,2023-12-01T00:00:00Z
WSTS,20,-41.278078,174.78446,14.9,,WGS84,Internal GPS Clock,2016-12-02T02:30:00Z,2017-03-14T14:00:00Z
WSTS,21,-41.278078,174.78446,3,,WGS84,Topographic Map,2016-12-06T03:30:00Z,2017-03-14T14:00:00Z
WTA,10,-40.290468588,176.179885729,270,,WGS84,Unknown,1990-02-19T21:40:00Z,1990-05-17T20:29:00Z
diff --git a/network/stations.csv b/network/stations.csv
index 1ee2f299d..95bbc6b2d 100644
--- a/network/stations.csv
+++ b/network/stations.csv
@@ -599,7 +599,7 @@ AKUS,SM,Auckland University School of Engineering,-36.853158207,174.770451257,50
ALLC,XX,Allen Road,-38.416928536,175.473483976,575,,WGS84,2001-02-13T16:17:00Z,2001-07-07T18:55:00Z
ALM,XX,Alma RATS,-42.240505618,172.934836475,1067,,WGS84,1990-02-16T01:41:00Z,1990-02-17T21:36:00Z
ALRZ,RT,Allen Road,-38.562043299,176.343014052,405,,WGS84,2007-11-07T00:00:00Z,9999-01-01T00:00:00Z
-ALS1R,EN,Auckland Scenic Drive Waiatarua,-36.93285,174.576436,370.17,,WGS84,2023-02-24T01:09:00Z,9999-01-01T00:00:00Z
+ALS1R,EN,Auckland Scenic Drive Waiatarua,-36.93285,174.576436,370.17,,WGS84,2023-02-24T01:09:00Z,2024-02-25T13:50:01Z
ALS2R,EN,Auckland Rayner Road Piha,-36.95976268,174.47184355,117.451,,WGS84,2023-02-23T03:59:00Z,9999-01-01T00:00:00Z
AMBC,SC,Amberley HDC,-43.154677722,172.730879511,41,,WGS84,2004-11-27T00:00:00Z,9999-01-01T00:00:00Z
AMCZ,SI,Amberley,-43.17654,172.65146,179,,WGS84,2012-06-26T00:00:00Z,9999-01-01T00:00:00Z
@@ -2100,12 +2100,12 @@ WI14,XX,White Island 14,-37.52216,177.18849,25,,WGS84,2011-06-13T00:00:00Z,2018-
WI15,XX,White Island 15,-37.52165,177.18668,33,,WGS84,2011-06-12T00:00:00Z,2018-05-19T00:00:00Z
WI16,XX,White Island 16,-37.52418,177.1919,8,,WGS84,2011-09-22T00:00:00Z,2011-09-23T00:00:00Z
WI17,XX,White Island 17,-37.52282,177.18955,17,,WGS84,2011-09-22T00:00:00Z,2011-09-23T00:00:00Z
-WI227,EN,White Island Fumarole 13,-37.52188,177.189942,0009,,WGS84,2018-09-13T00:00:00Z,9999-01-01T00:00:00Z
+WI227,EN,White Island Fumarole 13,-37.52188,177.189942,0009,,WGS84,2018-09-13T00:00:00Z,2023-12-01T00:00:00Z
WIAZ,AK,Waiheke Island,-36.793,175.1339,255,,NZGD2000,2010-07-27T00:00:00Z,9999-01-01T00:00:00Z
WICS,SM,Wairoa College,-39.035634969,177.414705559,10,,WGS84,2002-04-18T00:00:00Z,2006-02-21T10:00:00Z
WIGC,SC,Waiau Gorge,-42.701186545,172.800302583,247,,WGS84,2004-11-27T00:00:00Z,9999-01-01T00:00:00Z
WILA,XX,Wilberforce,-43.052021335,171.312611686,9999,,WGS84,1994-06-21T21:27:00Z,1994-06-28T23:34:00Z
-WIZ,RT,White Island,-37.524510539,177.189301882,40,,WGS84,1976-12-12T00:00:00Z,9999-01-01T00:00:00Z
+WIZ,RT,White Island,-37.524510539,177.189301882,40,,WGS84,1976-12-12T00:00:00Z,2023-12-01T00:00:00Z
WJAF,XX,Wet Jacket Arm,-45.632577082,166.893338924,2,,WGS84,1993-03-22T04:51:00Z,1993-06-19T19:24:00Z
WK1,NX,Wairakei 1,-38.643234312,176.08099056,343,,WGS84,1987-08-31T00:00:00Z,1989-07-25T04:04:00Z
WK2,NX,Wairakei 2,-38.621233807,176.047990236,456,,WGS84,1987-10-22T00:00:00Z,1989-07-31T17:20:00Z
@@ -2163,7 +2163,7 @@ WSF,XX,Santoft Forest,-40.114062574,175.202974199,25,,WGS84,1982-10-14T00:00:00Z
WSFC,SC,Westerfield,-43.837332321,171.611011502,162,,WGS84,2005-02-25T00:00:00Z,9999-01-01T00:00:00Z
WSHS,SM,Wellington Shed 11 (NZ Portrait Gallery),-41.28363398,174.77786153,0,,WGS84,2015-06-01T00:00:00Z,9999-01-01T00:00:00Z
WSN,XX,North Santoft,-40.107062391,175.188974051,25,,WGS84,1982-10-15T00:00:00Z,1982-10-24T00:00:00Z
-WSRZ,RT,White Island Summit,-37.51811,177.177805,292.4,,WGS84,2013-04-08T00:00:00Z,9999-01-01T00:00:00Z
+WSRZ,RT,White Island Summit,-37.51811,177.177805,292.4,,WGS84,2013-04-08T00:00:00Z,2023-12-01T00:00:00Z
WSS,XX,South Santoft,-40.238565317,175.227674018,15,,WGS84,1982-10-15T00:00:00Z,1982-10-24T00:00:00Z
WSTS,SM,Wellington Statistics Building,-41.278078,174.78446,3,,WGS84,2016-12-02T00:00:00Z,2017-03-14T14:00:00Z
WTA,XX,Waitahora,-40.290468588,176.179885729,270,,WGS84,1990-02-19T21:40:00Z,1990-05-17T20:29:00Z
diff --git a/network/views.csv b/network/views.csv
index 2eaee28b3..9d708c57f 100644
--- a/network/views.csv
+++ b/network/views.csv
@@ -17,9 +17,10 @@ RIMK,01,Raoul Island,0,,0,Images looking into Green Lake on Raoul Island from th
RUD01,01,Tukino Skifield,266,,-60,SO2 from Ruapehu from Tukino Skifield,2022-05-05T05:13:00Z,9999-01-01T00:00:00Z
RUD02,01,Iwikau Village,172,,-60,SO2 from Ruapehu from Iwikau Village,2022-05-06T00:00:00Z,9999-01-01T00:00:00Z
RUD03,01,Turoa Road End,51,,-60,SO2 from Ruapehu from Turoa Road End,2023-06-28T03:30:00Z,9999-01-01T00:00:00Z
+RUD04,01,Wahianoa,330,,-60,SO2 from Ruapehu from Wahianoa,2024-02-07T23:00:00Z,9999-01-01T00:00:00Z
TEMO,01,Taranaki,180,,0,Images of Mount Taranaki (Egmont volcano) from the volcano camera situated in New Plymouth.,2002-09-18T13:00:10Z,2012-04-02T22:45:00Z
TEMO,02,Taranaki,180,,0,Images of Mount Taranaki (Egmont volcano) from the volcano camera situated in New Plymouth.,2012-04-03T00:15:00Z,9999-01-01T00:00:00Z
-TOD01,01,,250,,-60,SO2 from Tongariro from Lower Te Maari East,2021-07-29T02:30:00Z,9999-01-01T00:00:00Z
+TOD01,01,,250,,-60,SO2 from Tongariro from Lower Te Maari East,2021-07-29T02:30:00Z,2024-02-04T08:00:00Z
TOD02,01,,169,,-60,SO2 from Tongariro from Lower Te Maari West,2021-07-29T01:00:00Z,9999-01-01T00:00:00Z
TOKR,01,Tongariro Te Maari Crater,0,,0,Images of Te Maari Crater on Mount Tongariro from the volcano camera situated at Karewarewa,2012-08-29T02:00:00Z,9999-01-01T00:00:00Z
WHHB,01,White Island,347,,0,Images of White Island from the volcano camera situated at Whakatane harbour.,2001-05-21T13:00:10Z,2007-04-13T00:00:00Z
diff --git a/resp/auto.go b/resp/auto.go
index 59ff563f4..2dc80b3e6 100644
--- a/resp/auto.go
+++ b/resp/auto.go
@@ -1130,6 +1130,36 @@ var Responses []Response = []Response{
},
},
Reversed: false,
+ }, {
+ DataloggerList: []string{"BPR Subsystem"},
+ Type: "CG",
+ Label: "WT",
+ SampleRate: 0.0011111111111111111,
+ Frequency: 1,
+ StorageFormat: "Int32",
+ ClockDrift: 0.0001,
+ FilterList: []string{"DART-900s"},
+ Stages: []ResponseStage{
+ {
+ Type: "a2d",
+ Lookup: "A2D",
+ Filter: "DART-900s",
+ StageSet: A2D{
+ Name: "A2D",
+ Code: PZFunctionLaplaceZTransform,
+ Type: "Digital (Z-transform).",
+ Notes: "This filter is used to represent an Analogue to Digital converter stage, it has no poles or zeros.",
+ },
+ Frequency: 0,
+ SampleRate: 0.0011111111111111111,
+ Decimate: 1,
+ Gain: 149253.73134328358,
+ //Scale: 0,
+ InputUnits: "m",
+ OutputUnits: "count",
+ },
+ },
+ Reversed: false,
},
},
}, {
diff --git a/resp/auto/datalogger_SAIC_BPRSubsystem_23bits_900s.xml b/resp/auto/datalogger_SAIC_BPRSubsystem_23bits_900s.xml
new file mode 100644
index 000000000..3b14da4f4
--- /dev/null
+++ b/resp/auto/datalogger_SAIC_BPRSubsystem_23bits_900s.xml
@@ -0,0 +1,35 @@
+
+
+
+ 149253.73134328358
+ 0.0002777777777777778
+
+ m
+
+
+ count
+
+
+
+
+
+ m
+
+
+ count
+
+ DIGITAL
+
+
+ 0.0011111111111111111
+ 1
+ 0
+ 0
+ 0
+
+
+ 149253.73134328358
+ 0.0002777777777777778
+
+
+
diff --git a/resp/files/combined_SAIC_BPR-Subsystem_BPR-Subsystem_Z_900s.xml b/resp/files/combined_SAIC_BPR-Subsystem_BPR-Subsystem_Z_900s.xml
new file mode 100644
index 000000000..88d852faf
--- /dev/null
+++ b/resp/files/combined_SAIC_BPR-Subsystem_BPR-Subsystem_Z_900s.xml
@@ -0,0 +1,35 @@
+
+
+
+ 149253.73134328358
+ 1
+
+ m
+
+
+ count
+
+
+
+
+
+ m
+
+
+ count
+
+ DIGITAL
+
+
+ 0.00111111111111111
+ 1
+ 0
+ 0
+ 0
+
+
+ 149253.73134328358
+ 1
+
+
+
diff --git a/resp/responses/configurations/pressure.yaml b/resp/responses/configurations/pressure.yaml
index 47e4ec200..b52681e18 100644
--- a/resp/responses/configurations/pressure.yaml
+++ b/resp/responses/configurations/pressure.yaml
@@ -384,5 +384,16 @@ response:
filters:
- "DART-15s"
reversed: false
+ - dataloggers:
+ - "BPR Subsystem"
+ type: CG
+ label: WT
+ samplerate: -900
+ frequency: 1
+ storageformat: Int32
+ clockdrift: 0.0001
+ filters:
+ - "DART-900s"
+ reversed: false
# vim: tabstop=2 expandtab shiftwidth=2 softtabstop=2
diff --git a/resp/responses/dataloggers/saic.yaml b/resp/responses/dataloggers/saic.yaml
index 01999c6f7..1527b3c0a 100644
--- a/resp/responses/dataloggers/saic.yaml
+++ b/resp/responses/dataloggers/saic.yaml
@@ -19,5 +19,17 @@ filter:
delay: 0
inputunits: m
outputunits: count
+ DART-900s:
+ - type: a2d
+ lookup: A2D
+ frequency: 0
+ samplerate: -900
+ decimate: 1
+ gain: 149253.73134328358208955223
+ scale: 0
+ correction: 0
+ delay: 0
+ inputunits: m
+ outputunits: count
# vim: tabstop=2 expandtab shiftwidth=2 softtabstop=2
diff --git a/tests/features_test.go b/tests/features_test.go
index 1a4a25fa0..ca0c352de 100644
--- a/tests/features_test.go
+++ b/tests/features_test.go
@@ -58,9 +58,13 @@ var featureChecks = map[string]func(*meta.Set) func(t *testing.T){
"check for duplicated feature sites": func(set *meta.Set) func(t *testing.T) {
return func(t *testing.T) {
for _, f := range set.Features() {
- if _, ok := set.Site(f.Station, f.Location); !ok {
- t.Error("error: unable to find feature site: " + f.Id())
+ if _, ok := set.Site(f.Station, f.Location); ok {
+ continue
+ }
+ if _, ok := set.Point(f.Station, f.Location); ok {
+ continue
}
+ t.Error("error: unable to find feature site: " + f.Id())
}
for _, f := range set.Features() {
if s, ok := set.Site(f.Station, f.Location); ok {
@@ -71,6 +75,14 @@ var featureChecks = map[string]func(*meta.Set) func(t *testing.T){
t.Log("warning: feature end mismatch: " + f.Id() + " after " + s.End.String())
}
}
+ if p, ok := set.Point(f.Station, f.Location); ok {
+ switch {
+ case f.Start.Before(p.Start):
+ t.Log("warning: feature start mismatch: " + f.Id() + " before " + p.Start.String())
+ case p.End.Before(time.Now()) && f.End.After(p.End):
+ t.Log("warning: feature end mismatch: " + f.Id() + " after " + p.End.String())
+ }
+ }
}
}
},
diff --git a/tests/points_test.go b/tests/points_test.go
new file mode 100644
index 000000000..10175ca0d
--- /dev/null
+++ b/tests/points_test.go
@@ -0,0 +1,73 @@
+package delta_test
+
+import (
+ "strings"
+ "testing"
+ "time"
+
+ "github.com/GeoNet/delta"
+ "github.com/GeoNet/delta/meta"
+)
+
+var pointChecks = map[string]func(*meta.Set) func(t *testing.T){
+ "check for duplicated points": func(set *meta.Set) func(t *testing.T) {
+ return func(t *testing.T) {
+
+ points := set.Points()
+ for i := 0; i < len(points); i++ {
+ for j := i + 1; j < len(points); j++ {
+ if points[i].Sample != points[j].Sample {
+ continue
+ }
+ if points[i].Location != points[j].Location {
+ continue
+ }
+ t.Errorf("point duplication: %s/%s", points[i].Sample, points[i].Location)
+ }
+ }
+ }
+ },
+
+ "check for duplicated sample points": func(set *meta.Set) func(t *testing.T) {
+ return func(t *testing.T) {
+ samples := make(map[string]meta.Sample)
+ for _, s := range set.Samples() {
+ samples[s.Code] = s
+ }
+ for _, c := range set.Points() {
+ if s, ok := samples[c.Sample]; ok {
+ switch {
+ case c.Start.Before(s.Start):
+ t.Log("warning: point start mismatch: " + strings.Join([]string{
+ c.Sample,
+ c.Location,
+ c.Start.String(),
+ "before",
+ s.Start.String(),
+ }, " "))
+ case s.End.Before(time.Now()) && c.End.After(s.End):
+ t.Log("warning: point end mismatch: " + strings.Join([]string{
+ c.Sample,
+ c.Location,
+ c.End.String(),
+ "after",
+ s.End.String(),
+ }, " "))
+ }
+ }
+ }
+ }
+ },
+}
+
+func TestPoints(t *testing.T) {
+
+ set, err := delta.New()
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ for k, v := range pointChecks {
+ t.Run(k, v(set))
+ }
+}
diff --git a/tools/siteinfo/main.go b/tools/siteinfo/main.go
index 8529011aa..4309e5a13 100644
--- a/tools/siteinfo/main.go
+++ b/tools/siteinfo/main.go
@@ -13,6 +13,29 @@ import (
"github.com/GeoNet/delta/meta"
)
+// handle the case where a session is wrapped around an earlier one,
+// this usually happens when the intervals are different.
+func squash(sessions []meta.Session) []meta.Session {
+
+ if !(len(sessions) > 1) {
+ return sessions
+ }
+
+ sort.Slice(sessions, func(i, j int) bool {
+ return sessions[i].Start.Before(sessions[j].Start)
+ })
+
+ res, last := []meta.Session{sessions[0]}, sessions[0]
+ for _, s := range sessions {
+ if s.Start.After(last.Start) && s.End.Before(last.End) {
+ continue
+ }
+ res, last = append(res, s), s
+ }
+
+ return res
+}
+
func main() {
flag.Usage = func() {
@@ -138,7 +161,7 @@ func main() {
continue
}
- for _, s := range sessions[m.Code] {
+ for _, s := range squash(sessions[m.Code]) {
for _, r := range deployedReceivers[m.Code] {
if r.Start.After(s.End) || r.End.Before(s.Start) {
continue