GithubHelp home page GithubHelp logo

drksephy / noaa-projects Goto Github PK

View Code? Open in Web Editor NEW
3.0 4.0 2.0 10.64 MB

Data Visualization Applications built for use by http://www.noaa.gov/

License: MIT License

Python 4.87% CSS 2.89% AGS Script 71.70% JavaScript 0.19% HTML 20.36%

noaa-projects's Introduction

NOAA-Projects

This repository contains source code of various projects I work on as a Graduate researcher at the City College of New York. My tasks involve creating web applications for NOAA-CREST and subsequently NOAA.

Project Directory

To dump out the contents of a netCDF4 file, run the following command:

ncdump -h <filename>

If you are interested in seeing how to pull out datasets from an .hdf file, please see the following script

  • special_regions/grid.html: NOAA Squam page with special regions demo. Clicking on any of the bounding boxes redicts to special_regions/regions.html, which is the NOAA Special Regions page.

  • squam_visualization/grid.html: NOAA Squam page with voronoi diagram demo. Hovering over each region displays the granule showing the anomaly of sea surface temperature, and clicking any region redirects to a full image of the granule corresponding to the selected region.

Completed Works

NOAA SQUAM Granule Visualization

One of NOAA's web products is the SST Quality Monitor, which maps sea-surface temperature across the globe through granules (images) provided by two satellites which sweep the globe. From the scale below each satellite image, we can see the agreement/disagreement of data, marked by shades of blue and purple.

alt tag

My task was to write scripts and provide JavaScript which would allow users to hover over regions of the globe and display the corresponding granule. To do so, I used d3 to build a voronoi diagram. The input to these voronoi diagrams are the computed latitude and longitude centers of each granule for all regions of the Earth, which in turn builds a set of SVG polygons.

alt tag

Voronoi diagrams allow the user to determine which region they are currently in by computing the centers of all polygons, which are also computed inside of a JSON file containing the image and ID associated with each polygon/region. By attaching event handlers to these polygons through D3, the user can hover over each area and see the corresponding granule. By clicking on the region, the granule opens in a new tab with higher resolution.

LICENSE

The actual images used in any of the demos presented here are not contained within this repository, as they are not part of the public domain. The only source code listed on this page are those that are written myself and are seperate from NOAA and NOAA-CREST.

As such, the JavaScript and conversion files may be useful for those interested in Voronoi diagram generation using D3. All source code is licensed under the MIT License. If any part of this source code is reused, a link back to my github profile would be appreciated.

noaa-projects's People

Contributors

drksephy avatar

Stargazers

Michael Akridge avatar echoxiangzhou avatar Fazlul Shahriar avatar

Watchers

James Cloos avatar  avatar  avatar  avatar

Forkers

hkcaesar coderzzg

noaa-projects's Issues

Generate full granules

All the .nc files need to generate their corresponding granules using the following algorithm:

  1. Open file using netCDF4.
  2. Find maximum/minimum of temperature.
  3. Run CDAT on file using this computed max/min.

Code cleanup

With the completion of the recent Squam Visualization project, any lingering code should be removed or cleaned up for future use.

Investigate generating multi-layer images using CDAT

Given a granule, we would like to save out various layers in the form of variables and render these through CDAT. This requires being able to render different variables as different layers, each with their own data range and color scheme.

Generate thumbnails of all granules

For each global day (144 granules), thumbnails need to be generated using the following steps:

  1. Open up file using netCDF4.
  2. Copy file to temporary file.
  3. Subtract sst_reynolds from sst_regression.
  4. Save file out with new data.
  5. Run CDAT on these files to generate the thumbnails.

Voronai diagrams

The voronai diagram and polygons need to be computed using d3 to map data to each one.

Build request object to send dummy image back to client

Currently, the server can retrieve the computed JavaScript points via AJAX. Using these points, we can build a query to a dummy image API such as placekitten using the pos_x, pos_y coordinates and return an image to the client.

move to csdirs

I just sent out an invite to the csdirs organization. If you like, move this repo to https://github.com/csdirs
but give it a more specific name than "NOAA-Projects". Maybe "squam-demos".

Also, you probably want to remove references to glasslab. This is more of a CSDIRS project.

Update IMS Demo

The current version of the IMS demo has a voronoi diagram in which its cells don't correspond to the correct images. In order to address this, the demo will be built again from the ground up, starting with getting new granules and recomputing the centers of each one.

Write script for central processing

Currently there exists a multitude of scripts for processing granule data, computing the centers, scaling these coordinates, and building the JSON file. It will be convenient to clean everything up and centralize everything.

Generate anomaly images

The anomaly for all datasets needs to be computed and generated using CDAT for [-4 4] input range.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.