Skip to content

Google Summer of Code Plan

Abhishek V. Potnis edited this page Jul 22, 2015 · 2 revisions

The LiDAR profile data captured by CALIPSO(Cloud-Aerosol Lidar and Infrared Pathfinder Satellite Observations) is used to study the aerosols interactions in the atmosphere, their origin and also cloud formation and persistence in the atmosphere. The studies can also be extended to develop climate models for climate predictions.

The idea of the project is to have an interface, that inputs a location from the user, and displays the profile curtains nearest to that location. The user can select the time-range for the data curtains and the profile curtains near the location of interest will be refreshed accordingly. The interface would also accommodate for selecting an arbitrary time-range, and present the user all the profile curtains of that time-range.

Storing the geo-coordinates in JSON or a similar format could prove easier to process and decide the nearest profiles from the user specified location of interest. Great Circle Distance could be used as the criterion for deciding the nearest profile curtains from the location of interest.

A way of storing the geo-coordinates as JSON would be :

{
 "0": {
       "img": "/CesiumDemo/CALIPSOData/0.png",
       "coordinates": [
           78.34,
           48.92,
           72.23,
           35.42,
           66.65,
           27.8,
           60.85,
           22.88,
           54.94,
           19.35,
           48.87,
           16.62,
           42.95,
           14.38,
           36.9,
           12.47,
           30.88,
           10.79
       ]
    }
}

Using the Entity API, WallGraphics can be used with the positions property pointing to the coordinates and the material property pointing to the img from the above JSON to visualize the flat maps and the curtains profile in combination.

The demo, that I have put together, has been written on these lines. The JavaScript that runs the demo resides in App.js. The Grid Material Property, could be used with the Composite Material Property to give the user an idea about the height of the profile data. The observed height of the profile data is 30Km. So the line count of the Grid can be varied accordingly to scale down to 30Km, so each grid block height represents some ‘x’ km.

Ways to encode the profile data as JSON or a similar format for easier processing of the geo-coordinates need to be investigated and researched upon.

My semester ends on April 27, so I will be able to start working on the project from April 28. I have structured the timeline, such that I will complete most of the project coding before July 21, before my next semester begins. The timeline is as follows:

Week 1 (April 28 - May 4)

  • Be clear about the objective of the project by discussing with my mentor
  • Research and discuss with my mentor, about the data format to be used for the project, the criterion for deciding the nearest profile curtains, etc.
  • Discuss and finalize the input flows:
    • Geo-Coding - Text
    • Mouse Click - Lat-Lon
    • Time Range
  • Familiarize myself more and play with Cesium Material, Primitive, Camera, CompositeMaterialProperty, Scene, Tiling, etc.

Week 2 - 3 (May 5 - May 18)

  • Research on extracting/creating profile data in the desired format, considering the performance constraints with the already existing legacy data
  • Discuss with my mentor and finalize a prototype method of extracting/creating the profile data in the desired format
  • Start working on a prototype script to extract/create the profile data in the desired format.
  • Start coding the prototype, starting with the user interface
    • Geocoding - Text Box
    • Mouse Click Capture
    • Time Range - Cesium

Week 4 - 5 (May 19 - June 1)

  • Work and complete the input-part of the user interface.
  • Discuss with my mentor and finalize the criterion for deciding the nearest profile data available from location of interest input by the user.
    • Great Circle Distance
  • Research on the algorithm to consider all the geo-coordinates of the profile data to calculate the distance.
  • Discuss and finalize the algorithm to calculate the distance between the location of interest and the profiles data.

Week 6 - 7 (June 1 - June 14)

  • Start implementing the algorithm to calculate the distance.
    • Experiment by prototyping multiple algorithms with a sample profile data to find the most efficient one.
    • Finalize the algorithm and document the results of all the experimented algorithms for future research on standardizing the data format.
  • Research on possible methods of indexing the profile data for faster response times - deciding which profile curtain is the nearest
    • Experiment by prototyping multiple algorithms with a sample profile data to find the most efficient one.
    • Finalize the algorithm and document the results of all the experimented algorithms for future research on searching profile data.

Week 8 - 9 (June 15 - June 28)

  • Once the methods of searching have been finalized and the prototype method ready, start working on the Visualization part.
    • Wall Graphics with the material property set to the image of the profile curtain.
    • Research on the displaying height on the profile curtains
      • Research on Composite Material Property to combine the image with the Grid Material Property
      • Ready the code completed until then, for Mid-Term Evaluation

Week 10 - 11 (June 29 - July 11)

  • Research on ways to display height by downscaling the 30Km. profile curtain height, and decide the height for display in Cesium appropriately
    • The Grid Material Property, if could be used, the line count property could be exploited to display the number of grid blocks accordingly
      • Each Grid Blocking measuring some ‘x’ Km.
  • Start working on time-range part of the project
    • Time Range for displaying the nearest profile curtain data
    • Time Range for displaying all the profile curtains data
      • Refreshing the Profile Curtains data
      • Refreshing the Tiles.

Week 12 - 13 (July 12 - July 25)

  • Integrating the code
    • Input
    • Processing - Searching, indexing, calculating min. distance, zeroing on the nearest profile curtains data.
    • Visualization
      • Profile Curtains
      • Statistical Information - Height

Week 14 - 15 (July 26 - August 8)

  • Work on documenting the code.
  • Work on documenting the research and the results of experimenting the prototype for future research.

Week 16 -17 (August 8 - August 21)

  • Buffer Weeks to contain backlogs if any.

##Outreach

  • Make a Youtube Video and a Presentation, introducing and demoing the project.