How to Publish VOEvents to Skyalert
VOEvents are XML documents containing information about astronomical
events. More precisely, it is a report about an observation of an astronomical event. Some examples of
astronomical events are Gamma Ray Bursts,
Supernovae, Microlensing events, or variable star outbursts. VOEvents are structured reports about such things that can be sent to Skyalert. Further, there is an inference that rapid follow-up observation is what is needed. The Skyalert system connects producers with consumers, gives each event a portfolio and a web page, and allows complete automation of decision.
There is a lot of information at http://hotwireduniverse.org/, including
What is VOEvent? and
Event Handling with SkyAlert.
This document assumes that you have a source of events now or in the future, and want to load them into a Skyalert server.
Before sending events, we need to know the meaning of the numbers and strings in your events. They are called Params.
Step 1: Design a Stream
Think carefully about what data you want to expose in the event. Some parameters are numbers and strings, and can be used to make decisions; some parameters are URLs that link to complex data objects (eg FITS).
To help you design a stream:
- Look at the existing event streams at skyalert.org (OGLE, Catalina, SWIFT, etc). At the bottom of each stream detail page is a sample event from that stream.
- Look at the annotated sample VOEvent. All the gray text is boilerplate, the essentials are highlighted in yellow.
Make sure you move the mouse over each highlight to see the explanation.
- Work with the Skyalert Team (write to ) to create a sample event that shows your parameters, each with description, unit, semantic descriptor (UCD), data type (int, float, string).
- You can include complex data objects with a Param whose value is a URL link. In this case, make sure the UCD of that Param is
meta.code.url so that Skyalert knows it is a URL.
- Use the VOEvent validation tool to test your ideas
and produce a valid VOEvent. You can also write to who can help you build a valid VOEvent that has your science content.
Step 2: Upload your stream
This will be done by Skyalert staff (write to ), using the agreed sample event, which has all the metadata. You will be asked to check that your stream appears correctly in the web interface. If you are running your own Skyalert system, you can login as an account with staff status.
Step 3: Test Events
Build code that can create events from your event stream: it can of course be done with print statements, or with the VOEventLib python library.
It is VERY IMPORTANT that test events be labeled
role="test" in the first element of the VOEvent,
so they are not mixed with real astronomy.
Step 4: Send events to Skyalert
There are two ways to ingest events to Skyalert:
- Local ingestion: You need "staff" status in the Skyalert system in order to do this, and to log in to the server, then execute:
python loader.py file <voevent.xml>, where the last argument is a file name for the VOEvent.
- Global ingestion: You can send events, by arrangement, to a remote Skyalert
server, using the VOEvent submission tool: for security,
there must be the short-name of the stream from which the event comes,
and the username and password of the owner of tha stream.
This can be done from a program as an http POST: see code snippets here.
Step 5: Annotators
You can now build rules against your stream that use the Params to make decisions and take actions. These can be,
for example fetching archival data, followup with a robotic telescope, or messaging (sending email).
Here is a sample of an annotator to show the structure.
Thank you for using Skyalert!
If you have questions or problems, write to .
What is Skyalert?
Skyalert collects and distributes astronomical events in near-real time.
Each event belongs to a stream of structurally similar events that come from a common source, with a common
vocabulary of parameters for each event. Users can browse event streams and the events themselves, and can
set up "alert rules" which decide which events will be delivered. It is available as a web application or as downloadable software. Also, this book and this paper from the book gives an overview of Skyalert.
Is VOEvent an International Standard?
Yes. It is a Recommendation of the International Virtual Observatory Alliance. See
wikipedia, and the IVOA VOEvent definition.
Can I run my own private Skyalert?
Yes. The software is open-source and pure python. It requires Django and a database such as MySQL, and Apache WSGI.
Can I make my own VOEvents
To produce the actual VOEvent xml is simple enough if you follow the instructions above. However, the
VOEvent xml file should be valid xml (the correct case, matching brackets, etc.) and conform to the
The VOEvents that you create can be checked for validity and conformity using this service.
What software is available for download?
Skyalart itself, which needs Django.