haz

package module
v0.0.0-...-1086ada Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 25, 2016 License: Apache-2.0 Imports: 3 Imported by: 0

README

haz

Projects related to haz messaging and the haz DB.

Working with Forks

To work with a fork of this repo you will need to clone the fork in such a way to preserve the import paths. Fork and clone to preserve the organization name e.g.,

 git clone git@github.com:YOUR_FORK/haz.git ${GOPATH}/src/github.com/GeoNet/haz

This could possibly include reseting GOPATH if you need to keep origin and a fork

Sub Projects

Messaging Applications
Producers
  • haz-sc3-producer - produces haz messges from SeisComPML. Need file system access in the container. See Container Testing below.
Consumers

Subprojects *-consumer consume msg.Haz or msg.Impact messages from SQS and process them.

Web Applications
  • geonet-rest - the server for api.geonet.org.nz
  • sc3ml-to-quakeml - web services to return QuakeML from SeisComPML.
Support Applications
  • haz-aws-messaging - creates AWS resources for the haz messaging. impact-intensity-consumer has a CFN template for it's resources.
  • haz-db-loader - used to load SeisComPML into the db. See below.

Protobufs

Compile protobufs

Database

Uses postgis. Pull and run the image (which already has the hazard db initialised and ready to use):

docker run --name hazdb -p 5432:5432 -d 862640294325.dkr.ecr.ap-southeast-2.amazonaws.com/haz-db:9.5

A Postgres 9.4 with Postgis 2.2 image can be built and pushed using:

docker build --rm=true -t 862640294325.dkr.ecr.ap-southeast-2.amazonaws.com/haz-db:9.5 -f database/Dockerfile database
docker push 862640294325.dkr.ecr.ap-southeast-2.amazonaws.com/haz-db:9.5

There is also a script to (re)initialise the DB ./database/scripts/initdb-93.sh

Loading Quake Data

Quake data can be back loaded from SeisComPML. Download SeisComPML from the S3 bucket and then load it to the DB using haz-db-loader:

aws s3 sync s3://seiscompml07 /work/seismcompml07 --exclude "*"  --include "2015p*"
cd haz-db-loader
go run haz-db-loader.go
Loading Quake Data - Origin Web Servers

Init the database with the qrt schema from the geonet project.

Quake data can be back loaded from SeisComPML. Download SeisComPML from the S3 bucket and then load it to the DB using haz-db-loader:

aws s3 sync s3://seiscompml07 /work/seismcompml07 --exclude "*"  --include "2015p*"
cd haz-db-origin-loader
go run haz-db-origin-loader.go

Tests

With the DB up run all tests

./all.sh

Docker Builds

./build.sh proj-name [proj-name]...

./build-push proj-name [proj-name]...

Also refer to .travis.yml.

Container Testing

docker-compose can be used to run a number of the containers together to test messaging.

Edit sc3-producer.env, db-consumer.env, and geonet-rest.env adding the outputs from running haz-aws-messaging.

mkdir /work/spool
sudo chown nobody /work/spool

Run the containers with docker-compose up.

Visit http://localhost:8080/soh/esb and check that heartbeat messages are arriving.

Send a quake and check it arrived (you should get GeoJSON for the quake):

rsync /work/seismcompml07/2015p494191.xml /work/spool/
curl http://localhost:8080/quake/2015p494191
Deployment
AWS Elastic Beanstalk

geonet-rest, quakesearch, sc3ml-to-quakeml, wfs.

There are files for EB - both to deploy the application and also set up logging from the container (application) to CloudWatch Logs. Create a zip file and then upload the zip to EB.

cd deploy
zip wfs.zip Dockerrun.aws.json .ebextensions/*

Documentation

Overview

Package haz is a generated protocol buffer package.

It is generated from these files:

haz.proto

It has these top-level messages:

Quake
Timestamp
Quakes
Volcano
VAL
Volcanoes
MMI
Shaking
Story
News
Rate
QuakeStats
QuakeTechnical
RealQuantity
StationMagnitude
Magnitude
Pick
Waveform

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MMI

type MMI struct {
	// latitude of the mmi.
	Latitude float64 `protobuf:"fixed64,1,opt,name=latitude" json:"latitude,omitempty"`
	// longitude of the mmi.
	Longitude float64 `protobuf:"fixed64,2,opt,name=longitude" json:"longitude,omitempty"`
	// the mmi at the location.  Currently the max mmi.
	Mmi int32 `protobuf:"varint,3,opt,name=mmi" json:"mmi,omitempty"`
	// count of mmi values at the location.
	Count int32 `protobuf:"varint,4,opt,name=count" json:"count,omitempty"`
}

func (*MMI) Descriptor

func (*MMI) Descriptor() ([]byte, []int)

func (*MMI) ProtoMessage

func (*MMI) ProtoMessage()

func (*MMI) Reset

func (m *MMI) Reset()

func (*MMI) String

func (m *MMI) String() string

type Magnitude

type Magnitude struct {
	Magnitude        *RealQuantity       `protobuf:"bytes,1,opt,name=magnitude" json:"magnitude,omitempty"`
	Type             string              `protobuf:"bytes,2,opt,name=type" json:"type,omitempty"`
	StationCount     int64               `protobuf:"varint,3,opt,name=station_count,json=stationCount" json:"station_count,omitempty"`
	StationMagnitude []*StationMagnitude `protobuf:"bytes,4,rep,name=station_magnitude,json=stationMagnitude" json:"station_magnitude,omitempty"`
}

func (*Magnitude) Descriptor

func (*Magnitude) Descriptor() ([]byte, []int)

func (*Magnitude) GetMagnitude

func (m *Magnitude) GetMagnitude() *RealQuantity

func (*Magnitude) GetStationMagnitude

func (m *Magnitude) GetStationMagnitude() []*StationMagnitude

func (*Magnitude) ProtoMessage

func (*Magnitude) ProtoMessage()

func (*Magnitude) Reset

func (m *Magnitude) Reset()

func (*Magnitude) String

func (m *Magnitude) String() string

type News

type News struct {
	Stories []*Story `protobuf:"bytes,1,rep,name=stories" json:"stories,omitempty"`
}

func (*News) Descriptor

func (*News) Descriptor() ([]byte, []int)

func (*News) GetStories

func (m *News) GetStories() []*Story

func (*News) ProtoMessage

func (*News) ProtoMessage()

func (*News) Reset

func (m *News) Reset()

func (*News) String

func (m *News) String() string

type Pick

type Pick struct {
	Waveform         *Waveform  `protobuf:"bytes,1,opt,name=waveform" json:"waveform,omitempty"`
	Time             *Timestamp `protobuf:"bytes,2,opt,name=time" json:"time,omitempty"`
	Phase            string     `protobuf:"bytes,3,opt,name=phase" json:"phase,omitempty"`
	Azimuth          float64    `protobuf:"fixed64,4,opt,name=azimuth" json:"azimuth,omitempty"`
	Distance         float64    `protobuf:"fixed64,5,opt,name=distance" json:"distance,omitempty"`
	Residual         float64    `protobuf:"fixed64,6,opt,name=residual" json:"residual,omitempty"`
	Weight           float64    `protobuf:"fixed64,7,opt,name=weight" json:"weight,omitempty"`
	EvaluationMode   string     `protobuf:"bytes,8,opt,name=evaluation_mode,json=evaluationMode" json:"evaluation_mode,omitempty"`
	EvaluationStatus string     `protobuf:"bytes,9,opt,name=evaluation_status,json=evaluationStatus" json:"evaluation_status,omitempty"`
}

func (*Pick) Descriptor

func (*Pick) Descriptor() ([]byte, []int)

func (*Pick) GetTime

func (m *Pick) GetTime() *Timestamp

func (*Pick) GetWaveform

func (m *Pick) GetWaveform() *Waveform

func (*Pick) ProtoMessage

func (*Pick) ProtoMessage()

func (*Pick) Reset

func (m *Pick) Reset()

func (*Pick) String

func (m *Pick) String() string

type Quake

type Quake struct {
	// the unique public identifier for this quake.
	PublicID string `protobuf:"bytes,1,opt,name=public_iD,json=publicID" json:"public_iD,omitempty"`
	// the origin time of the quake.
	Time *Timestamp `protobuf:"bytes,2,opt,name=time" json:"time,omitempty"`
	// the modification time of the quake information.
	ModificationTime *Timestamp `protobuf:"bytes,3,opt,name=modification_time,json=modificationTime" json:"modification_time,omitempty"`
	// latitude of the quake location.
	Latitude float64 `protobuf:"fixed64,4,opt,name=latitude" json:"latitude,omitempty"`
	// longitude of the quake location.
	Longitude float64 `protobuf:"fixed64,5,opt,name=longitude" json:"longitude,omitempty"`
	// the depth of the quake in km.
	Depth float64 `protobuf:"fixed64,6,opt,name=depth" json:"depth,omitempty"`
	// magnitude of the quake.
	Magnitude float64 `protobuf:"fixed64,7,opt,name=magnitude" json:"magnitude,omitempty"`
	// distance and direction to the nearest locality.
	Locality string `protobuf:"bytes,8,opt,name=locality" json:"locality,omitempty"`
	// the quality of this information; `best`, `good`, `caution`, `deleted`.
	Quality string `protobuf:"bytes,9,opt,name=quality" json:"quality,omitempty"`
	// the calculated MMI shaking at the closest locality in the New Zealand region.
	Mmi int32 `protobuf:"varint,10,opt,name=mmi" json:"mmi,omitempty"`
}

Quake is for earthquake information.

func (*Quake) Descriptor

func (*Quake) Descriptor() ([]byte, []int)

func (*Quake) GetModificationTime

func (m *Quake) GetModificationTime() *Timestamp

func (*Quake) GetTime

func (m *Quake) GetTime() *Timestamp

func (*Quake) ProtoMessage

func (*Quake) ProtoMessage()

func (*Quake) Reset

func (m *Quake) Reset()

func (*Quake) String

func (m *Quake) String() string

type QuakeStats

type QuakeStats struct {
	// quakes per day
	PerDay []*Rate `protobuf:"bytes,1,rep,name=per_day,json=perDay" json:"per_day,omitempty"`
	// magnitude count over the last 7 days
	Week map[int32]int32 `` /* 130-byte string literal not displayed */
	// magnitude count over the last 28 days
	Month map[int32]int32 `` /* 132-byte string literal not displayed */
	// magnitude count over the last 365 days
	Year map[int32]int32 `` /* 130-byte string literal not displayed */
}

func (*QuakeStats) Descriptor

func (*QuakeStats) Descriptor() ([]byte, []int)

func (*QuakeStats) GetMonth

func (m *QuakeStats) GetMonth() map[int32]int32

func (*QuakeStats) GetPerDay

func (m *QuakeStats) GetPerDay() []*Rate

func (*QuakeStats) GetWeek

func (m *QuakeStats) GetWeek() map[int32]int32

func (*QuakeStats) GetYear

func (m *QuakeStats) GetYear() map[int32]int32

func (*QuakeStats) ProtoMessage

func (*QuakeStats) ProtoMessage()

func (*QuakeStats) Reset

func (m *QuakeStats) Reset()

func (*QuakeStats) String

func (m *QuakeStats) String() string

type QuakeTechnical

type QuakeTechnical struct {
	PublicID         string        `protobuf:"bytes,1,opt,name=public_iD,json=publicID" json:"public_iD,omitempty"`
	Type             string        `protobuf:"bytes,2,opt,name=type" json:"type,omitempty"`
	Agency           string        `protobuf:"bytes,3,opt,name=agency" json:"agency,omitempty"`
	Time             *Timestamp    `protobuf:"bytes,4,opt,name=time" json:"time,omitempty"`
	ModificationTime *Timestamp    `protobuf:"bytes,5,opt,name=modification_time,json=modificationTime" json:"modification_time,omitempty"`
	Latitude         *RealQuantity `protobuf:"bytes,6,opt,name=latitude" json:"latitude,omitempty"`
	Longitude        *RealQuantity `protobuf:"bytes,7,opt,name=longitude" json:"longitude,omitempty"`
	Depth            *RealQuantity `protobuf:"bytes,8,opt,name=depth" json:"depth,omitempty"`
	DepthType        string        `protobuf:"bytes,9,opt,name=depth_type,json=depthType" json:"depth_type,omitempty"`
	Method           string        `protobuf:"bytes,10,opt,name=method" json:"method,omitempty"`
	EarthModel       string        `protobuf:"bytes,11,opt,name=earth_model,json=earthModel" json:"earth_model,omitempty"`
	EvaluationMode   string        `protobuf:"bytes,12,opt,name=evaluation_mode,json=evaluationMode" json:"evaluation_mode,omitempty"`
	EvaluationStatus string        `protobuf:"bytes,13,opt,name=evaluation_status,json=evaluationStatus" json:"evaluation_status,omitempty"`
	UsedPhaseCount   int64         `protobuf:"varint,14,opt,name=used_phase_count,json=usedPhaseCount" json:"used_phase_count,omitempty"`
	UsedStationCount int64         `protobuf:"varint,15,opt,name=used_station_count,json=usedStationCount" json:"used_station_count,omitempty"`
	StandardError    float64       `protobuf:"fixed64,16,opt,name=standard_error,json=standardError" json:"standard_error,omitempty"`
	AzimuthalGap     float64       `protobuf:"fixed64,17,opt,name=azimuthal_gap,json=azimuthalGap" json:"azimuthal_gap,omitempty"`
	MinimumDistance  float64       `protobuf:"fixed64,18,opt,name=minimum_distance,json=minimumDistance" json:"minimum_distance,omitempty"`
	MaximumDistance  float64       `protobuf:"fixed64,19,opt,name=maximum_distance,json=maximumDistance" json:"maximum_distance,omitempty"`
	MedianDistance   float64       `protobuf:"fixed64,20,opt,name=median_distance,json=medianDistance" json:"median_distance,omitempty"`
	Pick             []*Pick       `protobuf:"bytes,21,rep,name=pick" json:"pick,omitempty"`
	Magnitude        *RealQuantity `protobuf:"bytes,22,opt,name=magnitude" json:"magnitude,omitempty"`
	MagnitudeType    string        `protobuf:"bytes,23,opt,name=magnitude_type,json=magnitudeType" json:"magnitude_type,omitempty"`
	Magnitudes       []*Magnitude  `protobuf:"bytes,24,rep,name=magnitudes" json:"magnitudes,omitempty"`
}

QuakeTechnical for encoding technical information about a quake. More information than haz.Quake.

func (*QuakeTechnical) Descriptor

func (*QuakeTechnical) Descriptor() ([]byte, []int)

func (*QuakeTechnical) GetDepth

func (m *QuakeTechnical) GetDepth() *RealQuantity

func (*QuakeTechnical) GetLatitude

func (m *QuakeTechnical) GetLatitude() *RealQuantity

func (*QuakeTechnical) GetLongitude

func (m *QuakeTechnical) GetLongitude() *RealQuantity

func (*QuakeTechnical) GetMagnitude

func (m *QuakeTechnical) GetMagnitude() *RealQuantity

func (*QuakeTechnical) GetMagnitudes

func (m *QuakeTechnical) GetMagnitudes() []*Magnitude

func (*QuakeTechnical) GetModificationTime

func (m *QuakeTechnical) GetModificationTime() *Timestamp

func (*QuakeTechnical) GetPick

func (m *QuakeTechnical) GetPick() []*Pick

func (*QuakeTechnical) GetTime

func (m *QuakeTechnical) GetTime() *Timestamp

func (*QuakeTechnical) ProtoMessage

func (*QuakeTechnical) ProtoMessage()

func (*QuakeTechnical) Reset

func (m *QuakeTechnical) Reset()

func (*QuakeTechnical) String

func (m *QuakeTechnical) String() string

type Quakes

type Quakes struct {
	Quakes []*Quake `protobuf:"bytes,1,rep,name=quakes" json:"quakes,omitempty"`
}

func (*Quakes) Descriptor

func (*Quakes) Descriptor() ([]byte, []int)

func (*Quakes) GetQuakes

func (m *Quakes) GetQuakes() []*Quake

func (*Quakes) ProtoMessage

func (*Quakes) ProtoMessage()

func (*Quakes) Reset

func (m *Quakes) Reset()

func (*Quakes) String

func (m *Quakes) String() string

type Rate

type Rate struct {
	Time  *Timestamp `protobuf:"bytes,1,opt,name=time" json:"time,omitempty"`
	Count int32      `protobuf:"varint,2,opt,name=count" json:"count,omitempty"`
}

func (*Rate) Descriptor

func (*Rate) Descriptor() ([]byte, []int)

func (*Rate) GetTime

func (m *Rate) GetTime() *Timestamp

func (*Rate) ProtoMessage

func (*Rate) ProtoMessage()

func (*Rate) Reset

func (m *Rate) Reset()

func (*Rate) String

func (m *Rate) String() string

type RealQuantity

type RealQuantity struct {
	Value       float64 `protobuf:"fixed64,1,opt,name=value" json:"value,omitempty"`
	Uncertainty float64 `protobuf:"fixed64,2,opt,name=uncertainty" json:"uncertainty,omitempty"`
}

func (*RealQuantity) Descriptor

func (*RealQuantity) Descriptor() ([]byte, []int)

func (*RealQuantity) ProtoMessage

func (*RealQuantity) ProtoMessage()

func (*RealQuantity) Reset

func (m *RealQuantity) Reset()

func (*RealQuantity) String

func (m *RealQuantity) String() string

type Shaking

type Shaking struct {
	Mmi        []*MMI          `protobuf:"bytes,1,rep,name=mmi" json:"mmi,omitempty"`
	MmiSummary map[int32]int32 `` /* 160-byte string literal not displayed */
	MmiTotal   int32           `protobuf:"varint,3,opt,name=mmi_total,json=mmiTotal" json:"mmi_total,omitempty"`
}

func (*Shaking) Descriptor

func (*Shaking) Descriptor() ([]byte, []int)

func (*Shaking) GetMmi

func (m *Shaking) GetMmi() []*MMI

func (*Shaking) GetMmiSummary

func (m *Shaking) GetMmiSummary() map[int32]int32

func (*Shaking) ProtoMessage

func (*Shaking) ProtoMessage()

func (*Shaking) Reset

func (m *Shaking) Reset()

func (*Shaking) String

func (m *Shaking) String() string

type StationMagnitude

type StationMagnitude struct {
	Waveform  *Waveform     `protobuf:"bytes,1,opt,name=waveform" json:"waveform,omitempty"`
	Magnitude *RealQuantity `protobuf:"bytes,2,opt,name=magnitude" json:"magnitude,omitempty"`
	Type      string        `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"`
	Azimuth   float64       `protobuf:"fixed64,4,opt,name=azimuth" json:"azimuth,omitempty"`
	Distance  float64       `protobuf:"fixed64,5,opt,name=distance" json:"distance,omitempty"`
	Residual  float64       `protobuf:"fixed64,6,opt,name=residual" json:"residual,omitempty"`
	Weight    float64       `protobuf:"fixed64,7,opt,name=weight" json:"weight,omitempty"`
	Amplitude *RealQuantity `protobuf:"bytes,8,opt,name=amplitude" json:"amplitude,omitempty"`
}

func (*StationMagnitude) Descriptor

func (*StationMagnitude) Descriptor() ([]byte, []int)

func (*StationMagnitude) GetAmplitude

func (m *StationMagnitude) GetAmplitude() *RealQuantity

func (*StationMagnitude) GetMagnitude

func (m *StationMagnitude) GetMagnitude() *RealQuantity

func (*StationMagnitude) GetWaveform

func (m *StationMagnitude) GetWaveform() *Waveform

func (*StationMagnitude) ProtoMessage

func (*StationMagnitude) ProtoMessage()

func (*StationMagnitude) Reset

func (m *StationMagnitude) Reset()

func (*StationMagnitude) String

func (m *StationMagnitude) String() string

type Story

type Story struct {
	Title     string     `protobuf:"bytes,1,opt,name=Title,json=title" json:"Title,omitempty"`
	Link      string     `protobuf:"bytes,2,opt,name=link" json:"link,omitempty"`
	Published *Timestamp `protobuf:"bytes,3,opt,name=published" json:"published,omitempty"`
}

func (*Story) Descriptor

func (*Story) Descriptor() ([]byte, []int)

func (*Story) GetPublished

func (m *Story) GetPublished() *Timestamp

func (*Story) ProtoMessage

func (*Story) ProtoMessage()

func (*Story) Reset

func (m *Story) Reset()

func (*Story) String

func (m *Story) String() string

type Timestamp

type Timestamp struct {
	// Unix time in seconds
	Sec int64 `protobuf:"varint,1,opt,name=sec" json:"sec,omitempty"`
	// Fractional part of time in nanoseconds.
	Nsec int64 `protobuf:"varint,2,opt,name=nsec" json:"nsec,omitempty"`
}

Timestamp for encoding time stamps.

func (*Timestamp) Descriptor

func (*Timestamp) Descriptor() ([]byte, []int)

func (*Timestamp) ProtoMessage

func (*Timestamp) ProtoMessage()

func (*Timestamp) Reset

func (m *Timestamp) Reset()

func (*Timestamp) String

func (m *Timestamp) String() string

type VAL

type VAL struct {
	Level    int32  `protobuf:"varint,1,opt,name=level" json:"level,omitempty"`
	Activity string `protobuf:"bytes,2,opt,name=activity" json:"activity,omitempty"`
	Hazards  string `protobuf:"bytes,3,opt,name=hazards" json:"hazards,omitempty"`
}

volcanic alert level.

func (*VAL) Descriptor

func (*VAL) Descriptor() ([]byte, []int)

func (*VAL) ProtoMessage

func (*VAL) ProtoMessage()

func (*VAL) Reset

func (m *VAL) Reset()

func (*VAL) String

func (m *VAL) String() string

type Volcano

type Volcano struct {
	// a unique identifier for the volcano.
	VolcanoID string `protobuf:"bytes,1,opt,name=volcano_iD,json=volcanoID" json:"volcano_iD,omitempty"`
	// the volcano title.
	Title string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"`
	// latitude of the volcano.
	Latitude float64 `protobuf:"fixed64,3,opt,name=latitude" json:"latitude,omitempty"`
	// longitude of the volcano.
	Longitude float64 `protobuf:"fixed64,4,opt,name=longitude" json:"longitude,omitempty"`
	Val       *VAL    `protobuf:"bytes,5,opt,name=val" json:"val,omitempty"`
}

func (*Volcano) Descriptor

func (*Volcano) Descriptor() ([]byte, []int)

func (*Volcano) GetVal

func (m *Volcano) GetVal() *VAL

func (*Volcano) ProtoMessage

func (*Volcano) ProtoMessage()

func (*Volcano) Reset

func (m *Volcano) Reset()

func (*Volcano) String

func (m *Volcano) String() string

type Volcanoes

type Volcanoes struct {
	Volcanoes []*Volcano `protobuf:"bytes,1,rep,name=volcanoes" json:"volcanoes,omitempty"`
}

func (*Volcanoes) Descriptor

func (*Volcanoes) Descriptor() ([]byte, []int)

func (*Volcanoes) GetVolcanoes

func (m *Volcanoes) GetVolcanoes() []*Volcano

func (*Volcanoes) ProtoMessage

func (*Volcanoes) ProtoMessage()

func (*Volcanoes) Reset

func (m *Volcanoes) Reset()

func (*Volcanoes) String

func (m *Volcanoes) String() string

type Waveform

type Waveform struct {
	Network  string `protobuf:"bytes,1,opt,name=network" json:"network,omitempty"`
	Station  string `protobuf:"bytes,2,opt,name=station" json:"station,omitempty"`
	Location string `protobuf:"bytes,3,opt,name=location" json:"location,omitempty"`
	Channel  string `protobuf:"bytes,4,opt,name=channel" json:"channel,omitempty"`
}

func (*Waveform) Descriptor

func (*Waveform) Descriptor() ([]byte, []int)

func (*Waveform) ProtoMessage

func (*Waveform) ProtoMessage()

func (*Waveform) Reset

func (m *Waveform) Reset()

func (*Waveform) String

func (m *Waveform) String() string

Directories

Path Synopsis
haz-db-consumer listens to an AWS SQS queue for Haz JSON messages and saves the messages into a DB.
haz-db-consumer listens to an AWS SQS queue for Haz JSON messages and saves the messages into a DB.
haz-db-origin-consumer listens to an AWS SQS queue for Haz JSON messages and saves the messages into the DB for the origin web servers.
haz-db-origin-consumer listens to an AWS SQS queue for Haz JSON messages and saves the messages into the DB for the origin web servers.
haz-sc3-producer sends SeisComPML file to AWS SNS as Haz JSON messages.
haz-sc3-producer sends SeisComPML file to AWS SNS as Haz JSON messages.
haz-twitter-consumer listens to an AWS SQS queue for Haz JSON messages and post it to twitter if it passed the given threshold.
haz-twitter-consumer listens to an AWS SQS queue for Haz JSON messages and post it to twitter if it passed the given threshold.
haz-ua-consumer listens to an AWS SQS queue for Haz JSON messages and generate tags for push message subscribers, then send it to UA to push message out.
haz-ua-consumer listens to an AWS SQS queue for Haz JSON messages and generate tags for push message subscribers, then send it to UA to push message out.
Package msg provides interfaces and methods for processing messages.
Package msg provides interfaces and methods for processing messages.
The kml package is used for rendering Google Earth Keyhole Markup Language (KML) files.
The kml package is used for rendering Google Earth Keyhole Markup Language (KML) files.
Package sc3ml is for converting SeisComPML to other formats.
Package sc3ml is for converting SeisComPML to other formats.
sns is for sending messages to AWS SNS topics.
sns is for sending messages to AWS SNS topics.
sqs handles messages from AWS SQS via channels.
sqs handles messages from AWS SQS via channels.
The kml package is used for rendering Google Earth Keyhole Markup Language (KML) files.
The kml package is used for rendering Google Earth Keyhole Markup Language (KML) files.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL