EarthKit

From InfovisWiki

Jump to: navigation, search

Contents

Description

These are all the components and framework development activities associated with cartography (geographic visualization) functionality within the Titan toolkit.

Short Term Work

  • Develop super cool use cases
    • GTD database
    • Network heat map?
  • Research geo projections (Jeff)
  • Larger textures
  • Explore interaction
  • Zoom on double-click
  • Pop up on mouse over or single click
  • architecture and implementation.
  • Integration into ThreatView (See EarthKit ThreatView integration)
    • Linked selection
    • Graph display (both nodes and links)
    • Labels on graph nodes
    • Labels on graph links
    • Political boundaries (David T.)
    • Region labels (state, country labels)
    • Lineal labels (graph edges)
    • Dynamic point labelling (Dave P.)
  • Dynamic labels / icons based on priorities.
    • Turn vtkLabelPlacer into a filter with two outputs (icon polydata, text polydata)
    • Make vtkPointSetToLabelHierarchy accept multiple inputs. Instead of storage being an octree<set<vtkIdType> > > , it becomes octree<set<pair<int,vtkIdType> > >. The first entry in the pair specifies the input port.
    • Have the vtkLabelPlacer keep a sorted list of labels placed in the last N frames and place them before traversing the octree.
    • Traverse the octree in the proper order (basically a breadth-first traversal of all octree nodes within a given distance, with nodes closer to the camera coming first within a given level of the octree).
    • Tie the label placer, the GeoView, the icon renderer, and some kind of text rendering into a test application for benchmarking.
  • Figure out EarthKit Threading Model

Dependencies

The ThreatView integration depends on Tim or Eric finding time to work on it or at least provide guidance.

Long Term Work

Work Completed

  • Package up current functionality so that Brian W can use it in a small vtksnl app (Jeff) - vtkGeoView should be ready to be added to a small application, by adding it to a QVTKWidget. After making a view, you can add a vtkGeoGraphRepresentation which will render a graph which has data arrays called "latitude" and "longitude" (array names are configurable). See GeoView application to see how this is done. Linked selection with vtkGraphLayoutView is working.
  • Shift-selection bug - Fixed.
  • More responsive interation - Fixed. A bug in vtkOpenGLTexture was causing all textures to reload at the start of every pan/zoom interaction event. This no longer happens.
  • Better initial view - Now vtkGeoTerrainGlobeSource generates 16x16 polydata instead of 8x8.
  • Quality of rendered globe (NASA image too dark), possibly change lighting. Now uses Natural Earth image by default. Made the lighting ambient (this hides polygon boundaries).
  • Prototype for non-overlapping icon/label mapper in 3D. This prototype works with boxes which could represent icons or labels. Currently does a quadratic-time box-overlap algorithm (if a box overlaps another drawn box, it is not drawn). I made a video of the current prototype. Notice the imperfections in computing screen box overlaps.
  • Widget for tilt, zoom, and changing heading.
  • Research geo labeling (Jeff)
  • Develop super cool use cases (partial):
    • Added political boundaries a while back
    • Added US Census data (city lat/long, name, and population) for demonstrating label placement. This is in vtkSNL/Applications/GeoView/LabelPlacer/data.
  • Research geo error metrics / caching (Dave P.)
  • Research overlays (David T.)
    • WorldWind has a "terrain-follow" mode where curves are adaptively sampled to within a screen-space tolerance on a per-frame basis. Other curves are rendered at some fixed altitude which is either cleverly chosen or cleverly allowed to intersect the ground. So far I haven't been able to find any other open source software or papers that describe rendering vector data projected onto a terrain surface deformed by a raster height field.
  • Wiki page outlining the integration into ThreatView (including schedule, tasks, responsible parties, etc...)
  • Turn off labels on the other side of the globe (Dave P.)
Personal tools