An SDW Web 2.0 Application
From spacedatawiki
| Skip to "A Promise" for current work in progress. |
The SDW Source Forge project is the code base that will power a public Web 2.0 application. Titled "Space Exploration Commons" ( think "Wikimedia Commons") the public application of SDW will be as Mediawiki is to Wikipedia. It can include such things as user tagging ( Folksonomy ) and sharing of commented features using software like NASA Worldwind (See Worldwind Plugin) and Open Layers. Google Earth should also be able to display the comments although due to it's closed nature adding comments will not be possible. The Google maps API could be used but as it uses geospatial data that is not truly open to public use, Open Layers is more appropriate using open GIS data.
Contents |
Other Web GIS Space Applications
Here are the other major Space GIS applications listed here for reference and inspiration.
JMars
See their wiki. A Java web start application (like the HiRise image viewer).
PDS
Not really a GIS map system but this is where all the data used in other systems resides, or will eventually end up. It is the ultimate reference source and contact point for help as well. The only caveat being that data takes a while to get into the PDS so some of the latest images, that you might find in the media for example, often are not in the PDS yet, but reside on seperate archives for each mission where the data is held before PDS release.
Mars Global Data Access
Various maps by the The Arizona State University Mars Space Flight Facility.
PIGWAD
U.S.G.S. Planetary GIS Web Server - PIGWAD (Planetary Interactive G.I.S.-on-the-Web Analyzable Database)
ESA Planetary Science Archive
Here is the start page for their Java viewer and no java search system. Mainly Mars Express High Resolution Stereo Camera but also OMEGA spectrometer.
HRSC Viewer
A cgi based viewer for HRSC images. Also includes a 3D capability.
Web Apps
OpenLayers
Basic Open Layers operation. OL already has much in built functionality (in built keyboard and other controls will be listed here).
- Use Shift-Click to draw a zoom rectangle to zoom to.
- ... (WIP)
AIE - Ajax Image Editor
Ajax Image Editor provides image editing using a web browser. SDW would excerpt an image from the currently viewed location and send it to AIE for adding comments, signatures, or for processing. It includes a water mark system using an image. A users SDW account (probably Space Exploration Commons account) could include a water mark image uploaded by the user. Once excerpted and customised the image can be shared using Flickr, Facebook, Myspace and other social webs. AIE is
open source.
Annotation
As well as editing and adding text to an image ... which is portable to wherever an image can be displayed, maybe SDW should also have an image annotation system. This would allow the adding of true text (rather than just pixels) to the image as an HTML DIV layer (or whatever). This means that text can be easily linked as well as the other usual text operations. Of course this would restrict viewing the image in something that can render the annotations - probably a web browser.
A possible candidate is FNServer but it seems to be tied to proprietary, trademarked technology. The search continues.
It would seem to be clear that storing the annotations actually in the image as an EXIF-like tag would make sense. That would make it accessible to RDF and OWL standards. So a commented / annotated image would show it's annotations whenever a viewer can access the EXIF tag. Having been told that Planetary Scientists use an ad hoc method for annotation ..."I've marked the image here in my graphics package .. what is that?" ... this method would make a lot of sense from a Scientific point of view. Although I'm not sure yet if there already is a more formal method that is used.
OL Development Direction
The "It Just Works" development philosophy can be well used here. Look at the Gnome desktop used by Ubuntu systems. The user is presented with the absolute basic functionality and information to achieve a simple task. In this case marking a feature and adding a comment. The SDW Web App should really have the same approach as any other consumer application run by Flickr. MySpace or whatever. The user must not become frustrated or they will go away and probably not come back ! A good example of this is disabling mouse wheel zooming of the map be default. The user is used to scrolling the browser window with the mouse scroll wheel so it makes sense not to surprise them. But see "The paradox of the guided user: assistance can be counter-effective" (2008), Nimwegen, C. Van, for an up to date research of interface design.
A perfect example of a what can be done with OL in the terms of SDW is this Flickr layer in OL. The current HiRise feed can be changed to GeoRSS and thumbnails sourced from the HiRise team. This would make sense on a zoomed out map of Mars because the actual HiRise images (when aligned on the Mars map) will not really be visible at low zoom levels. The example also shows some use of HTML within the popup.
Configurable layers are important for exploration. Different layers can be cross referenced like MGS images vs MRO images. Or MEX data vs other probe data. This is easily accomplished using OpenLayers (OL). See this example. Layers could also have adjustable opacity. As well as community comments the application could have a personal layer to add notes and comments that are not visible in the public view, although they could be available to friends.
A basic OpenLayers example could include ...
- Customisation of default OpenLayers graphics - an SDW GUI design including shadowing and other effects. See example.
- Easy on the eye full-screen.
- Adding areas and points of interest. The OL site has an example showing this. Another.
- Ability to measure distance. Crucial on Mars where scale os very difficult to judge.
- Good clear symbols for features. Example.
- An application toolbar with easily recognisable icons. Example. Another. Including a history function (like the WWW browser history).
- Keyboard access for those who cannot use a mouse, or don't prefer the mouse. See this example.
- SDW attribution - SDW logo and other contributing sources where necessary. See this example.
Other interesting examples are the Click Event Example, the Map Controls Example, Custom control Point ( use shift - click ).
Optimisation
To a certain extent Geoserver handles limiting the number of features displayed in the browser when zoomed in. A basic setup will show all features when zoomed right out. That can lead to heavy browser load. maxResolution can be used to handle this. Latest version of Geoserver also now has regionating.
Browsing a large vector WMS (for example the one of the world used by default Open Layers) is noticeably much faster than browsing an image heavy WMS. An option can be included that allows navigation in vector only mode. This is especially important with the large numbers of comments and annotations that may be on the map.
Firebug
Developing using OpenLayers javascript can be debugged and aided by using the Firebug Firefox add-on. Variable values and other things running live in the script can be reported to the Firebug console. See this example.
Stumbling Blocks
The "Same Origin Policy" can effect Javascript requests when using Open Layers.
A Promise
As Eric S. Raymond says in the light of his Cathedral and the Bazaar concept, an initial code release does not have to work particularly well but should "give a promise of what it could be" (paraphrased ... the talk he gives can be found on this page), and then should be released as often as possible with development changes. The trick is to appeal to developers ego's ... they will be named for their updates. Their reputation increases the more they work on the project, or even just solve one problem or a do a particularly good update.
Current development notes ... (warning .. in flux!)...
Set OL up to do transactional operations using GML ( see this page ). GML is more open than KML as I understand it. SDW does NOT have to work using KML - not that I have anything against it - it's just that SDW will only have to produce a KML feed to Google Earth / Mars. I don't think GE can be coaxed into allowing "live" comments to be added to SDW within GE, but I could be wrong. SDW is focused on Open Source, so GE does not really interest it (although I like GE!) ... so development focusses on Open Layers and Nasa Worldwind ... Java and .Net.
WW plugin .... http://msdn.microsoft.com/en-us/library/system.xml.xmltextreader.aspx
See the function "private void OpenLayerFile_Click(object sender, System.EventArgs e)" at line 7912 in "/home/djbarney/Build/WorldWind/nasa-exp/trunk/WorldWind_Net_1_4_Addons/AO_LayerEdit/Plugins/LayerEdit/layeredit.cs" in the WW SVN.
That function is called at line 4888 ...
"OpenLayerFile.Click+= new System.EventHandler(OpenLayerFile_Click);
... using http://msdn.microsoft.com/en-us/library/system.eventhandler.aspx
Note ...plugin script needs description, developer, and website info adding to it (shows in WW plugin load dialog).
Release target update: the C# needs to send a WFS-T url string to GeoServer (just like Open Layers does) to add a comment entry into the database at the click location. Then GeoServer will return it via simple KML, or what ever displays in WW * See Worldwind Earthquake add-on *.
- As part of THAT WFS-T transaction a link is provided (in a similar way to how the current WW plugin works) built from the comment title. GeoServer just treates this as another DB entry (?) .. when the returned marker appears in WW ... (or OL) ... THEN clicking on it will start a new Mediawiki page.
- The URL string is a string of GML that makes the WFS-T transaction.
Latest - sdwcomments.cs plugin provides URL with coordinates to WFS transaction. If the WFS can be mirrored in another WMS instance of the DB that shows the markers on a WMS map, then WW can send a Get Feature Request for the point on the map to pull up the comment just entered so that the wiki page can be started (from the constructed link for Mediawiki).
See topp:tasmania_roads for WFS-T insertion example using two database columns .. FID, and TYPE. The sample requests demo shows the XML needed to achieve this.
- Confusing ! SDW data store is CALLED "HiRise" .. it should be called "sdw". This is so confusing as nameing convention. Note - if anything breaks in the SVN then I have changed the name of the datastoe from "hirise" to "sdw", so adjust javascript, or whatever appropriately.
- http://www.opengeospatial.org/standards/wfs
*Wikispaces to Mediawiki -- > http://www.ellesime.net/~sheepy/tools/wikiconvert.html*
SELECT AddGeometryColumn( 'sdw_schema', 'annotations', 'postgis_point', 4326, 'POINT', 2 );
psql --single-transaction -d SDW --command "UPDATE sdw_schema.annotations SET postgis_point = PointFromText('POINT(' || point[0] || ' ' || point[1] || ')',4326)"
SVN - Tags can be used to create a static copy of the SVN for use as, for example, a way to provide a stable release. Branches contains development independent of the trunk that can be merged back into the main tree (trunk) at a later date. See http://howdy.physics.nyu.edu/index.php/SVN_tutorial
http://en.csharp-online.net/HTTP_Post
NOTE ! To get OID's table must be recreated.
