Data Conversions
To Do
- Field to image/elevation layer: output GeoTIFF
- Colormapping for image layers: convert single channel to RGB8
- Example of rescaling 16-bit to 8-bit:
gdal_translate -scale 0 65535 0 255 -ot Byte /tmp/trgb16.tif /tmp/trgb8.tif
- Example of rescaling 16-bit to 8-bit:
- Field to model layer: output shape files from cloud or mesh/field?
mapviewer.tcl
To Do
Required for Demo / Use Cases
- Allow setting layer order (move layers)
Allow setting layer translucencySupport WMS, TMS and XYZ image layers in Rappture map object and client viewer- Define high-level "base" layer types: e.g. Satellite imagery from OSM, Street map from OSM
Example using geoTIFF- Example using netcdf: should be covered by GDAL driver if they use the right geolocation data format
- Example using shape files (started this: need to check in test -lld)
- Need to define Rappture object representation for styles
Not required
- handle grouping of layers
- Example sending data to server.
- On map controls for pan and zoom. Do we really need these? We have zoom in/out buttons already. Google maps no longer has a pan control and zoom controls are only +/-. Since we are going to be space constrained, this seems like a low priority.
- Add user settings for units of position display readout.
We need protocol to specify desired units. Check for bad file paths (assume server sees the same).Since the server processes asynchronously and may not know a file is corrupt/unreadable or network resource is unavailable until the loader thread tries, there may still be unreported errors.- Add way for users to save viewpoints into a list of named viewpoints and recall them later.
Also should allow tool developer to pre-populate this list.
Questions
- Should it be mandatory that maps in different runs have the same "type" (geocentric or projected), "extents", and "projection"? Is there a good reason for allowing this? Would this mean separate server connections?
- The renderer cannot mix geocentric and projected, so that means multiple server connections if you want to switch back and forth without starting over
- Otherwise, layers can be reprojected onto the same map (geocentric or projected), but the map view is always using a single projection and extents (extents here means the edge of displayable data, not the zoomed extents). In geocentric view, the extents typically cover the globe (not sure if osgearth can render a spherical section).
- What's our current set of layer types?
- image
- elevation
- feature: generic styled feature layer
- polygon: fixed style feature layer
- point: fixed style feature layer
- icon: fixed style feature layer (should have some standard icon images like pins and circles)
- line: fixed style feature layer
- label: fixed style feature layer
Map hints
Hint Description Default Validated type The type of map. Can be either "geocentric" or "projected". "projected" yes projection A string representing the projection of the map. May be WKT, EPSG Codes, PROJ4, or aliases like "spherical-mercator". "global-mercator" not yet extents A list of 4 numbers (xmin, ymin, xmax, and ymax) representing the extents of the map in map coordinates. "" not yet label Label of the map "Map" no description Description of the map. "" no attribution Attribution for map data. "" no style Style array "" not yet camera Initial camera settings "" not yet toolName Short name of the tool "" no toolId Id of the tool "" no toolCommand Command used to invoke the tool. "" no toolTitle Title of the tool. "" no toolRevision Revision of the tool. "" no
Layer Properties
Property Description Default Validated name ID of layer (must be supplied by user) N/A yes type The type of layer. Will always be one the types. yes profile Optional projection of the layer. For use when there is no embedded projection or .prj file. "" not yet srs Optional projection of the layer. Use this OR profile. For use when there is no embedded projection or .prj file. "" not yet verticalDatum Optional projection of the layer. Use this OR profile. For use when there is no embedded projection or .prj file. "" not yet label Title of the layer. "" no description Description of the layer. "" no attribution Attribution string for layer data "" no visible Is layer visible by default? 1 not yet cache Can layer be cached to disk? 1 not yet shared Is layer a base/overlay layer? 0 not yet coverage If set, don't interpolate values 0 not yet opacity Opacity of layer. Not valid for elevation layers. 1.0 not yet placard Optional array of placard settings. Only valid for feature layers. "" not yet driver Layer driver "debug" yes
Selector Properties
Property Description Default Validated id ID of selector (supplied by user) N/A yes name Selector name "" no style Name of style. Use this OR styleExpression "" no styleExpression JavaScript returning a style name or CSS style string. Use this OR style. "" no query SQL where clause. May be empty to select all records. "" no queryBounds Restrict query to these bounds. List (space separated) of xmin ymin xmax ymax in SRS of feature source. "" no queryOrderBy SQL order by clause "" no
Viewpoint Properties
Property Description Default Validated label Label to display on button/link N/A yes description Longer description of viewpoint "" no x,y Horizontal, vertical coordinates "" no latitude,longitude Optional alternative to x,y: implies srs="wgs84" "" no z OR altitude Optional altitude coordinate "" no distance Camera distance to GeoPoint? "" no heading Optional camera azimuth/heading angle in degrees "" no pitch Option camera pitch angle in degrees "" no srs Projection string "" no verticalDatum Vertical reference "" no
geovis
Questions
- Map scale varies at different points. Currently, we compute scale based on a horizontal line in the center of the screen. When zoomed far out, do we want a scale bar that shows scales vs. latitude?
To Do
Fix osgearth build: need to enable V8 for javascript support: requires a newer version than the one in Debian. Need to enable GEOS support.Copy default map from /usr/share/osgearth into /opt/hubzero/rappture/render. Point Renderer.cpp to the location.Don't load default world.tif map.- (bug) Detect errors in loading layers or earth file,
especially when file does not exist. - (protocol) Missing command to load initial layers.
(protocol) Missing command to save view.(protocol) Missing command to restore view.Need to restore view after reset too.(protocol) Missing command to pan.Pan amount is in relative normalized screen coords. e.g. 'camera pan 0 0' does not change the view. 'camera pan .5 0' moves the image right (camera left) by 1 half the screen width, and 'camera pan -.5 0' moves the image left (camera right) half a screen width. Positive Y moves the image up (camera down) and vice versa. What's the screen size? A: Whatever was set with the 'screen size' command, i.e. the image size.- (feature) Don't allow map to zoom beyond map extents.
- (feature) Map should always fill the image. Think "zoom" mode on flat screen TVs. It is not possible to fill the screen and allow seeing all parts of the map if the map aspect doesn't match the screen aspect. Google maps handles this by repeating the map.
(protocol) Missing command: given x,y screen coordinate, return lat, long.Notes: returns coordinates in map srs units. Need way to specify conversions such as returning lat/long for mercator map, e.g. Also, the result depends on the camera position/orientation, which can be out of date when result is received if camera is animating, such as when moving to a new viewpoint. The result will be marked invalid if the screen coordinates do not lie on the map.
Last modified 8 years ago
Last modified on May 17, 2016 12:12:24 PM