mitmedialab / Vida_Modeling

User Interface and Simulation Platform for a System Dynamics Model
MIT License
6 stars 2 forks source link

Develop an easy way to display satellite-based data in the Vida UI #11

Open jackreid opened 4 years ago

jackreid commented 4 years ago

We already have various satellite data products, mostly coming out of GEE. What's the best way to present them in the UI. A straight up image can be displayed on the background, but lining it up perfectly with the shapefiles might be cumbersome. Using a GeoTIFF or geo-reference jpg might help. Alternatively, converting into vector data might work.

jackreid commented 3 years ago

i am focusing on GeoTIFFs initially.

jackreid commented 3 years ago

This functionality has been added and is currently available on the geotiffs branch, but several issues remain.

  1. Configuring it so that such images are accessible via the dropdown menu somehow. This includes having a standardized way of associating a string title with each geotiff. Might be best to have a separate drop down,

  2. Identifying which combination of bands in a given geotiff to plot

  3. Making sure that, when shapefiles and geotiffs are overlapped, they are both reasonably visually legible.

The example geotiff I am using is too large to upload to github, but is available via google drive here: https://drive.google.com/file/d/15bKb8hKWnvRtSIgXwXJmliQci6AziI9g/view?usp=sharing

jackreid commented 3 years ago

Functionality is much improved. There is now a standard format for visualizing geoTIFFs. In each context data folder, there is a file called images.csv that contains the filepaths and English titles for each geotiff available to be plotted in that context. Separately, the images may be placed in a Images folder for that context. Right now only Rio de Janeiro has images (3 of them). The other contexts' images.csv is empty, other than column headers.

To accomplish this, various small changes to the UI had to be made, such as the addition of a dropdown for controlling these images. One of the options on this dropdown is "None" which results in no image being plotted. For those contexts without images, this will be the default and only option, so they should continue to work fine as before.

The current code works if the image has 3+ bands or 1 band. If the former, it assumes that that the first three bands are in BGR order and uses those to plot an RGB image. If the latter, it plots a grayscale image,

There are various improvements that remain to be made:

  1. Allow for better selection of the bands to be plotted. For instance, one image may have B,G,R,NIR and we may want two options, one to plot RGB and one to plot NIR.

  2. Allow for better visual scaling of values. For instance, on the Nightlights option for the Rio de Janeiro case, the image is scaled linearly and thus appears to be almost binary white-black.

  3. Allow for different visual presentation of single band imagery. Right now it is just grayscale, but in many cases we would want a color gradient of some sort, such as a green=positive, red =negative scale.

  4. In general the visual legibility of the shapefiles plotted over the images needs to be improved. Not sure the best way to go about this. Alternately, maybe it just has to be an either/or thing, where you are either looking at images or looking at shapefiles. Seems suboptimal, but may be worth including the option to turn the shapefiles off it so desired.

jackreid commented 3 years ago

Adding the option to turn off the shapefile files, as mentioned in point 4 above, but haven't added the option to omit the shapefile boundaries entirely. Also added some example. imagery for the Santiago context.