SensorML
From Seamonster
- Data main page
- SQL Server
- Visualization, Photosynth, Time Lapse Videos, Chart Director, Virtual Globes, Virtual Earth, Google Earth
- XML, SensorML, GML, KML
- Web Services
- Geoserver, PostGIS
Contents |
Introduction: What Is SensorML?
From the SensorML homepage (http://vast.uah.edu/SensorML/):
SensorML provides standard models and an XML encoding for describing any process, including the process of measurement by sensors and instructions for deriving higher-level information from observations. Processes described in SensorML are discoverable and executable. All processes define their inputs, outputs, parameters, and method, as well as provide relevant metadata. SensorML models detectors and sensors as processes that convert real phenomena to data.
SensorML and Seamonster
To store information regarding stations and sensors attached to the seamonster network, work has been done to store sensorML in a relational database.
MySQL table sqldump is stored in this file: http://edknuth.net/seamonster/seamonster.sql
Database Schema
My concept for the structure of the database is to give each datalogger a unique id identifified in the database by the "id" tag. There are several tables that contain general information for the datalogger, such as location, manufacturer info, etc with "id" as the unique identifyer. Each sensor also has a unique serial number tagged in the database as "sensorid". Multiple sensors can be associated with single dataloggers.
DB Breakdown
sensorml_System
The primary table for storing information about dataloggers is the sensorml_System table. This serial number acts as the key for the other tables. It only has info for the id of the datalogger and a site name.
sensorml_Classification
The sensorml_Classification table associates sensors with dataloggers. It has columns for datalogger id and sensor ids, and also a short description for the purpose of the sensor, such as "temperature", "webcam", etc. The sensorid value can be used to look up data about individual sensors in other tables.
sensorml_Inputs & sensorml_Outputs
These tables store information about individual sensors. sensorml_Inputs contains information about the properties of the sensor itself, such as the position it occupies on the datalogger. Information about the calibration curve or function that produces the measurement should go here, but the database doesn't have tables for that. Output is information about the measurement reported by the datalogger. This would be information such as the unit of measure ("uom"), position in the text output of the datalogger and information about measurement scale would go here.
sensorml_Posistion
This table stores information about the physical location of the instrument. The datum for the coordinates is stored in EPSG format. The tables names for the coords are "lat" and "long" but this may be too specific. Maybe northing and easting would be good, or coord_x, coord_y.
Other Tables
sensorml_ResponsibleParty contains information about the manufacturer of the instruments. sensorml_Validtime has time/date stamps for the interval of time that the data is considered good for.
MySQL Export of Schema
-- phpMyAdmin SQL Dump -- version 2.11.0 -- http://www.phpmyadmin.net -- -- Host: seamonster.edknuth.net -- Generation Time: Oct 05, 2007 at 06:05 PM -- Server version: 5.0.24 -- PHP Version: 4.4.7 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Database: `seamonster` -- -- -------------------------------------------------------- -- -- Table structure for table `sensorml_Classification` -- CREATE TABLE IF NOT EXISTS `sensorml_Classification` ( `id` int(11) NOT NULL, `sensorid` int(11) NOT NULL auto_increment, `intendedApplication` varchar(50) NOT NULL, `sensorType` varchar(59) NOT NULL, `update` datetime NOT NULL, PRIMARY KEY (`sensorid`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=24 ; -- -- Dumping data for table `sensorml_Classification` -- INSERT INTO `sensorml_Classification` (`id`, `sensorid`, `intendedApplication`, `sensorType`, `update`) VALUES (10, 1, 'windspeed', 'windspeed', '2007-05-09 14:45:26'), (11, 2, 'windspeed', 'windspeed', '2007-05-09 14:46:54'), (11, 3, 'humidity', 'humidity', '2007-05-09 14:46:54'), (12, 4, 'temperature', 'temperature', '2007-05-09 14:51:31'), (12, 5, 'windspeed', 'windspeed', '2007-05-09 14:51:31'), (12, 6, 'humidity', 'humidity', '2007-05-09 14:51:31'), (13, 7, 'ARRAY(0x83c1814)', 'ARRAY(0x83c1814)', '2007-05-09 14:52:14'), (14, 8, 'temperature', 'temperature', '2007-05-09 14:54:41'), (14, 9, 'windspeed', 'windspeed', '2007-05-09 14:54:41'), (14, 10, 'humidity', 'humidity', '2007-05-09 14:54:41'), (15, 11, 'temperature', 'temperature', '2007-05-09 14:55:25'), (15, 12, 'windspeed', 'windspeed', '2007-05-09 14:55:25'), (15, 13, 'humidity', 'humidity', '2007-05-09 14:55:25'), (15, 14, 'insolation', 'insolation', '2007-05-09 14:55:25'), (16, 15, 'temperature', 'temperature', '2007-05-10 15:33:25'), (16, 16, 'windspeed', 'windspeed', '2007-05-10 15:33:25'), (16, 17, 'Wind Direction', 'Wind Direction', '2007-05-10 15:33:25'), (16, 18, 'webcam', 'webcam', '2007-05-10 15:33:25'), (17, 19, 'temperature', 'temperature', '2007-06-05 11:43:21'), (17, 20, 'windspeed', 'windspeed', '2007-06-05 11:43:21'), (17, 21, 'Wind Direction', 'Wind Direction', '2007-06-05 11:43:21'), (17, 22, 'humidity', 'humidity', '2007-06-05 11:43:21'), (17, 23, '', '', '2007-06-05 11:43:21'); -- -------------------------------------------------------- -- -- Table structure for table `sensorml_Description` -- CREATE TABLE IF NOT EXISTS `sensorml_Description` ( `id` int(11) NOT NULL, `discussion` text NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `sensorml_Description` -- -- -------------------------------------------------------- -- -- Table structure for table `sensorml_Documentation` -- CREATE TABLE IF NOT EXISTS `sensorml_Documentation` ( `id` int(11) NOT NULL, `description` text NOT NULL, `fileLocation` varchar(1024) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `sensorml_Documentation` -- -- -------------------------------------------------------- -- -- Table structure for table `sensorml_Identification` -- CREATE TABLE IF NOT EXISTS `sensorml_Identification` ( `longName` varchar(255) NOT NULL, `shortName` varchar(50) NOT NULL, `modelNumber` varchar(50) NOT NULL, `manufacturer` varchar(50) NOT NULL, `id` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `sensorml_Identification` -- -- -------------------------------------------------------- -- -- Table structure for table `sensorml_Inputs` -- CREATE TABLE IF NOT EXISTS `sensorml_Inputs` ( `id` int(11) NOT NULL, `sensorid` int(11) NOT NULL, `name` varchar(50) NOT NULL, `position` int(11) NOT NULL, `Quantity` varchar(255) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `sensorml_Inputs` -- -- -------------------------------------------------------- -- -- Table structure for table `sensorml_Outputs` -- CREATE TABLE IF NOT EXISTS `sensorml_Outputs` ( `id` int(11) NOT NULL, `sensorid` int(11) NOT NULL, `name` varchar(255) NOT NULL, `definition` varchar(255) NOT NULL, `uom` varchar(50) NOT NULL, `scale` varchar(50) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `sensorml_Outputs` -- -- -------------------------------------------------------- -- -- Table structure for table `sensorml_Position` -- CREATE TABLE IF NOT EXISTS `sensorml_Position` ( `id` int(11) NOT NULL, `datum_EPSG` varchar(50) NOT NULL, `lat` float NOT NULL, `long` float NOT NULL, `altitude` int(11) NOT NULL, `orientation` float NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `sensorml_Position` -- -- -------------------------------------------------------- -- -- Table structure for table `sensorml_ResponsibleParty` -- CREATE TABLE IF NOT EXISTS `sensorml_ResponsibleParty` ( `id` int(11) NOT NULL, `organizationName` varchar(255) NOT NULL, `phone_voice` varchar(50) NOT NULL, `phone_facsimile` varchar(50) NOT NULL, `address_deliveryPoint` varchar(255) NOT NULL, `address_City` varchar(255) NOT NULL, `address_AdministrativeArea` varchar(255) NOT NULL, `address_postalCode` varchar(50) NOT NULL, `address_Country` varchar(50) NOT NULL, `electronicMailAddress` varchar(255) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `sensorml_ResponsibleParty` -- -- -------------------------------------------------------- -- -- Table structure for table `sensorml_System` -- CREATE TABLE IF NOT EXISTS `sensorml_System` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `update` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=18 ; -- -- Dumping data for table `sensorml_System` -- INSERT INTO `sensorml_System` (`id`, `name`, `update`) VALUES (1, 'Fish Creek', '0000-00-00 00:00:00'), (2, 'test', '2007-05-09 14:16:05'), (3, 'test', '2007-05-09 14:17:00'), (4, 'a test', '2007-05-09 14:19:58'), (5, 'another', '2007-05-09 14:23:36'), (6, 'another', '2007-05-09 14:25:00'), (7, 'another', '2007-05-09 14:35:00'), (8, 'another', '2007-05-09 14:40:42'), (9, 'another', '2007-05-09 14:42:27'), (10, 'another', '2007-05-09 14:44:38'), (11, 'another', '2007-05-09 14:46:54'), (12, 'test two', '2007-05-09 14:51:31'), (13, 'test two', '2007-05-09 14:52:14'), (14, 'test two', '2007-05-09 14:54:41'), (15, 'test two', '2007-05-09 14:55:25'), (16, 'special site', '2007-05-10 15:33:22'), (17, 'nsrl1', '2007-06-05 11:43:21'); -- -------------------------------------------------------- -- -- Table structure for table `sensorml_ValidTime` -- CREATE TABLE IF NOT EXISTS `sensorml_ValidTime` ( `id` int(11) NOT NULL, `StartTime` datetime NOT NULL, `EndTime` datetime NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `sensorml_ValidTime` --
MySQL Export of Schema
-- phpMyAdmin SQL Dump -- version 2.11.0 -- http://www.phpmyadmin.net -- -- Host: seamonster.edknuth.net -- Generation Time: Oct 05, 2007 at 06:05 PM -- Server version: 5.0.24 -- PHP Version: 4.4.7
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
-- -- Database: `seamonster` --
-- --------------------------------------------------------
-- -- Table structure for table `sensorml_Classification` --
CREATE TABLE IF NOT EXISTS `sensorml_Classification` (
`id` int(11) NOT NULL, `sensorid` int(11) NOT NULL auto_increment, `intendedApplication` varchar(50) NOT NULL, `sensorType` varchar(59) NOT NULL, `update` datetime NOT NULL, PRIMARY KEY (`sensorid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=24 ;
-- -- Dumping data for table `sensorml_Classification` --
INSERT INTO `sensorml_Classification` (`id`, `sensorid`, `intendedApplication`, `sensorType`, `update`) VALUES (10, 1, 'windspeed', 'windspeed', '2007-05-09 14:45:26'), (11, 2, 'windspeed', 'windspeed', '2007-05-09 14:46:54'), (11, 3, 'humidity', 'humidity', '2007-05-09 14:46:54'), (12, 4, 'temperature', 'temperature', '2007-05-09 14:51:31'), (12, 5, 'windspeed', 'windspeed', '2007-05-09 14:51:31'), (12, 6, 'humidity', 'humidity', '2007-05-09 14:51:31'), (13, 7, 'ARRAY(0x83c1814)', 'ARRAY(0x83c1814)', '2007-05-09 14:52:14'), (14, 8, 'temperature', 'temperature', '2007-05-09 14:54:41'), (14, 9, 'windspeed', 'windspeed', '2007-05-09 14:54:41'), (14, 10, 'humidity', 'humidity', '2007-05-09 14:54:41'), (15, 11, 'temperature', 'temperature', '2007-05-09 14:55:25'), (15, 12, 'windspeed', 'windspeed', '2007-05-09 14:55:25'), (15, 13, 'humidity', 'humidity', '2007-05-09 14:55:25'), (15, 14, 'insolation', 'insolation', '2007-05-09 14:55:25'), (16, 15, 'temperature', 'temperature', '2007-05-10 15:33:25'), (16, 16, 'windspeed', 'windspeed', '2007-05-10 15:33:25'), (16, 17, 'Wind Direction', 'Wind Direction', '2007-05-10 15:33:25'), (16, 18, 'webcam', 'webcam', '2007-05-10 15:33:25'), (17, 19, 'temperature', 'temperature', '2007-06-05 11:43:21'), (17, 20, 'windspeed', 'windspeed', '2007-06-05 11:43:21'), (17, 21, 'Wind Direction', 'Wind Direction', '2007-06-05 11:43:21'), (17, 22, 'humidity', 'humidity', '2007-06-05 11:43:21'), (17, 23, , , '2007-06-05 11:43:21');
-- --------------------------------------------------------
-- -- Table structure for table `sensorml_Description` --
CREATE TABLE IF NOT EXISTS `sensorml_Description` (
`id` int(11) NOT NULL, `discussion` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- -- Dumping data for table `sensorml_Description` --
-- --------------------------------------------------------
-- -- Table structure for table `sensorml_Documentation` --
CREATE TABLE IF NOT EXISTS `sensorml_Documentation` (
`id` int(11) NOT NULL, `description` text NOT NULL, `fileLocation` varchar(1024) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- -- Dumping data for table `sensorml_Documentation` --
-- --------------------------------------------------------
-- -- Table structure for table `sensorml_Identification` --
CREATE TABLE IF NOT EXISTS `sensorml_Identification` (
`longName` varchar(255) NOT NULL, `shortName` varchar(50) NOT NULL, `modelNumber` varchar(50) NOT NULL, `manufacturer` varchar(50) NOT NULL, `id` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- -- Dumping data for table `sensorml_Identification` --
-- --------------------------------------------------------
-- -- Table structure for table `sensorml_Inputs` --
CREATE TABLE IF NOT EXISTS `sensorml_Inputs` (
`id` int(11) NOT NULL, `sensorid` int(11) NOT NULL, `name` varchar(50) NOT NULL, `position` int(11) NOT NULL, `Quantity` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- -- Dumping data for table `sensorml_Inputs` --
-- --------------------------------------------------------
-- -- Table structure for table `sensorml_Outputs` --
CREATE TABLE IF NOT EXISTS `sensorml_Outputs` (
`id` int(11) NOT NULL, `sensorid` int(11) NOT NULL, `name` varchar(255) NOT NULL, `definition` varchar(255) NOT NULL, `uom` varchar(50) NOT NULL, `scale` varchar(50) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- -- Dumping data for table `sensorml_Outputs` --
-- --------------------------------------------------------
-- -- Table structure for table `sensorml_Position` --
CREATE TABLE IF NOT EXISTS `sensorml_Position` (
`id` int(11) NOT NULL, `datum_EPSG` varchar(50) NOT NULL, `lat` float NOT NULL, `long` float NOT NULL, `altitude` int(11) NOT NULL, `orientation` float NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- -- Dumping data for table `sensorml_Position` --
-- --------------------------------------------------------
-- -- Table structure for table `sensorml_ResponsibleParty` --
CREATE TABLE IF NOT EXISTS `sensorml_ResponsibleParty` (
`id` int(11) NOT NULL, `organizationName` varchar(255) NOT NULL, `phone_voice` varchar(50) NOT NULL, `phone_facsimile` varchar(50) NOT NULL, `address_deliveryPoint` varchar(255) NOT NULL, `address_City` varchar(255) NOT NULL, `address_AdministrativeArea` varchar(255) NOT NULL, `address_postalCode` varchar(50) NOT NULL, `address_Country` varchar(50) NOT NULL, `electronicMailAddress` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- -- Dumping data for table `sensorml_ResponsibleParty` --
-- --------------------------------------------------------
-- -- Table structure for table `sensorml_System` --
CREATE TABLE IF NOT EXISTS `sensorml_System` (
`id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `update` datetime NOT NULL, PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=18 ;
-- -- Dumping data for table `sensorml_System` --
INSERT INTO `sensorml_System` (`id`, `name`, `update`) VALUES (1, 'Fish Creek', '0000-00-00 00:00:00'), (2, 'test', '2007-05-09 14:16:05'), (3, 'test', '2007-05-09 14:17:00'), (4, 'a test', '2007-05-09 14:19:58'), (5, 'another', '2007-05-09 14:23:36'), (6, 'another', '2007-05-09 14:25:00'), (7, 'another', '2007-05-09 14:35:00'), (8, 'another', '2007-05-09 14:40:42'), (9, 'another', '2007-05-09 14:42:27'), (10, 'another', '2007-05-09 14:44:38'), (11, 'another', '2007-05-09 14:46:54'), (12, 'test two', '2007-05-09 14:51:31'), (13, 'test two', '2007-05-09 14:52:14'), (14, 'test two', '2007-05-09 14:54:41'), (15, 'test two', '2007-05-09 14:55:25'), (16, 'special site', '2007-05-10 15:33:22'), (17, 'nsrl1', '2007-06-05 11:43:21');
-- --------------------------------------------------------
-- -- Table structure for table `sensorml_ValidTime` --
CREATE TABLE IF NOT EXISTS `sensorml_ValidTime` (
`id` int(11) NOT NULL, `StartTime` datetime NOT NULL, `EndTime` datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- -- Dumping data for table `sensorml_ValidTime` --
</pre>
