Skip to content

Latest commit

 

History

History
73 lines (40 loc) · 4.64 KB

documentation.md

File metadata and controls

73 lines (40 loc) · 4.64 KB

FCX Frontend Documentation

This document contains the information how the front end of FCX works.

Background

A key component of NASA’s Earth Observing System is its field experiments, for intensive observation of particular phenomena such as hurricanes, or for ground validation of satellite observations. These field experiments collect many datasets from a wide variety of satellite, airborne, and ground-based instruments, on different spatial and temporal scales, often in unique formats. Such diverse environmental observations are important for physical process studies, disaster assessment and response, as well as for the validation of environmental satellite observations and atmospheric models which can improve forecasts. However, the challenges inherent in working with such diverse datasets mean they are underused despite their value.

The Field Campaign eXplorer (FCX) addresses challenges inherent with utilizing these datasets to improve data management and discoverability to enable scientists to rapidly collect, visualize, and analyze these data. FCX was originally developed for the Hurricane and Severe Storm Sentinel (HS3) field campaign that investigated hurricane intensification. More recently, the Global Hydrology Resource Center DAAC has leveraged work from Visualization for Integrated Satellite, Airborne and Ground-based data Exploration (VISAGE) project. FCX has incorporated the lessons learned from VISAGE to transition FCX into a robust, cloud-native tool for exploring, visualizing, and analyzing diverse data in a common framework.

Architecture

Following is the architecture of FCX as of August 2020 FCX Architecture

FlightTrack

  • Campaign metadata is stored in JSON format. Example metadata for GOES-R PLT Field Campaign is included in this file: layers.js

    Layers

  • FCX app is developed using Create React App template (https://reactjs.org/docs/create-a-new-react-app.html) and built files are stored in a S3 bucket.

  • Once all the 3D Tiles, COG, CZML and React build are stored in S3, the entire application works serverlessly

Code Organization

React components are stored in src/components folder. Helper files are stored in src/helpers folder.

CodeStructure

Following are the two mechanisms that are used to communicate between components:

Redux store related files are stored in src/state folder. The logic to change state of selected layers is stored in src/state/reducers/listReducer.js file.

The customized timeline component (https://github.com/BHP-DevHub/react-timeline-9000) is stored in in src/customized-components folder.

Configuration are stored in src/config.js file.

index.html file is stored in the public folder

Working

The application's layout is managed as dockable panels using rc-dock (https://ticlo.github.io/rc-dock/examples/). The code for this is src/components/dock.js file

Docks

The code to construct layers list is in src/components/layerList.js file

LayersList

src/components/app.js defines the App component which is the root component. The app.js file has code render layers on Cesium, manage camera state and react to events. The time dynamic point cloud animation are made possible using Temporal3DTileset class provided by temporal-3d-tile (https://www.npmjs.com/package/temporal-3d-tile)