#Spectrometry Projects# **Spectral Workbench open source spectral analysis** **Goal:** spectrum pattern matching to identify oil contamination ** Links:** http://github.com/jywarren/spectral-workbench **GPLv3** ###Project: import open spectral databases### **Description:** Determine which spectral databases can be used in an open source manner (such as perhaps the HITRAN and ASTER datasets) and import them, tagging them with their source and relevant metadata. Focus on near-infrared, visible, and ultraviolet ranges. ** Links:** https://github.com/jywarren/spectral-workbench/issues/54 **Prerequisites:** Ruby/Rails, familiarity with open data licensing and database parsing/scripting **Difficulty level:** easy **Mentor:** Jeff Warren (jeff@publiclaboratory.org) ###Project: find closest matched spectra from database### **Description:** Given a spectrum from http://SpectralWorkbench.org, develop a search function for similar spectra. **Links:** https://github.com/jywarren/spectral-workbench/issues/53 **Prerequisites:** Ruby/Rails, some familiarity with (spectral) pattern matching **Difficulty level:** hard **Mentor:** Jeff Warren (jeff@publiclaboratory.org) ###Project: Baseline Macro to reset a baseline light source### **Description:** **Links:** **Prerequisites:** **Difficulty level:** **Mentor:** ###Project: API v1.0 - basic spectrometry analysis, data manipulation and visualization tools for the spectral data matching/search### **Description:** **Links:** **Prerequisites:** **Difficulty level:** **Mentor:** ###Project: offline version of SpectralWorkbench, hopefully based on our HTML/JavaScript code### **Description:** **Links:** **Prerequisites:** **Difficulty level:** **Mentor:** ###Project: iOS version of SpectralWorkbench in PhoneGap### **Description:** **Links:** **Prerequisites:** **Difficulty level:** **Mentor:** #Map Projects# **MapKnitter open source image rectification and GIS** **Goal:** spectrum pattern matching to identify oil contamination **Links:** http://github.com/jywarren/mapknitter * GPLv3 ###Project: optimize and improve high-resolution stitching interface### **Description:** This could take the form of several ideas/approaches -- from [caching the warped images as dataURLs in the canvas element](https://github.com/jywarren/mapknitter/issues/13) to speed up interactivity, to [implementing the Client Zoom feature in the most recent OpenLayers](https://github.com/jywarren/mapknitter/issues/75). **Prerequisites:** JavaScript/Prototype/Canvas element, Ruby/Rails **Difficulty level: ** medium **Mentor:** Jeff Warren (jeff@publiclaboratory.org), Stewart Long (stewart@publiclaboratory.org) ###Project: Clashifier open source image classification. abstract Classifiers class to make different classifiers more pluggable### **Goal:** identify wetlands species and/or oil contamination **Links:** http://github.com/jywarren/clashifier * GPLv3 **Description:** Some structural changes are necessary to allow people to develop and add new classifiers to the system. It should be as easy as having a "classifier.classify()" function which accepts an RGB (or more colors) pixel value, or perhaps an image and x,y coordinates. Some of this work has been started in the /lib/ directory, but it will require some architectural changes. **Links:** https://github.com/jywarren/clashifier/issues/4 https://github.com/jywarren/clashifier/issues/3 **Prerequisites:** Ruby/Rails, some familiarity with classification algorithms like naive bayes or cartesian, or anything else **Difficulty level:** medium **Mentor:** Jeff Warren (jeff@publiclaboratory.org) ###Project: add annotations layer to Mapknitter### **Description:** This could include adding polygonal overlays to highlight regions, adding notes, and linking discussions/data directly into maps. **Links:** https://github.com/jywarren/spectral-workbench/issues/89 **Prerequisites:** JavaScript/Prototype/Canvas element, Ruby/Rails **Difficulty level:** medium **Mentor:** Jeff Warren (jeff@publiclaboratory.org), Stewart Long (stewart@publiclaboratory.org) ###Project: georeferencing in Mapknitter without base image data### **Description:** investigate and implement different methods of georeferencing images besides overlaying on existing aerial data. GPS, ground-target, or EXIF-embedded data could all be used. **Links:** https://github.com/jywarren/mapknitter/issues/64 https://github.com/jywarren/mapknitter/issues/10 https://github.com/jywarren/mapknitter/issues/65 https://github.com/jywarren/mapknitter/issues/73 **Prerequisites:** JavaScript/Prototype/Canvas element, Ruby/Rails **Difficulty level:** medium **Mentor:** Jeff Warren (jeff@publiclaboratory.org), Stewart Long (stewart@publiclaboratory.org), Ned Horning (horning@amnh.org) ###Project: Align and analyze overlapping visible and near infra-red images### **Description:** A utility to process large numbers (dozens or hundreds) of pairs of visible and infra-red images, including those taken by users with matched visible and IR cameras. The utility could automate a subset of the processes below. It could be based on the experimental multispectral features of MapKnitter, with a focus on analysis and NDVI. Such a utility could greatly improve the quality, consistency, and usefulness of the NDVI maps made by Grassroots Mappers. * Align pairs of overlapping visible and near IR photographs * Crop the result to the area of overlap * Compute NDVI for each pixel of the layered image and produce a third layer of the NDVI values. * Modify the assignment of colors to the NDVI values * Downsample the NDVI layer by averaging (e.g., blocks of 4 to 256 pixels) to account for alignment error * Interactively display the NDVI value for mouse-selected pixels or polygons * Output the NDVI layer (e.g., as jpeg) for aligning with adjacent overlapping images (e.g., MapKnitter) or stitching into a seamless aerial image (e.g., MS ICE, Gigapan Stitch) **Prerequisites:** JavaScript/Prototype/Canvas element, Ruby/Rails, GDAL and/or ImageMagick/RMagick, familiarity with remote sensing would be nice **Difficulty level:** hard **Mentor:** Arlene Ducao (arlduc@mit.edu), Jeff Warren (jeff@publiclaboratory.org), Ned Horning (horning@amnh.org) ###Project: auto-geocoding of images### **Description:** **Links:** **Prerequisites:** **Difficulty level:** **Mentor:** ###Project: ability to upload just an image without making a map (drag-drop or from a phone), and it auto-geocodes and starts a map for you (prototype MapKnitter 2.0)### **Description:** **Links:** **Prerequisites:** **Difficulty level:** **Mentor:** ###Project: implementing rubbersheeting in Leaflet, as a first step to porting the whole interface to Leaflet### **Description:** **Links:** **Prerequisites:** **Difficulty level:** **Mentor:** #MapMill.org crowdsourced image sorting# http://github.com/jywarren/mapmill ###Project: shift image storage to Amazon S3### **Description:** We can't support large #s of uploads otherwise, and this is better security and archiving too. Probably use paperclip gem in Rails. **Prerequisites:** Ruby on Rails, Ruby, ImageMagick/RMagick **Difficulty level:** medium **Mentor:** Jeff Warren (jeff@publiclaboratory.org) ###Project: bulk multifile upload, like Hyper3d.com### **Description:** Batch upload (may require above s3 project) with progress bars for each image. See https://github.com/jywarren/mapmill/issues/6 **Prerequisites:** Ruby on Rails, Ruby, Javascript/jQuery or Prototype **Difficulty level:** easy **Mentor:** Stewart Long (stewart@publiclaboratory.org), Jeff Warren (jeff@publiclaboratory.org) #Infrared Projects# **Android phone-based NDVI/NRG infrared vegetation analysis** * Code at https://github.com/jywarren/infrared-visible-video-kit * MIT license ###Project: Update code to composite side-by-side video from a webcam### **Description:** The code works for dual webcams, but must be adapted for imagery from a single webcam, split horizontally. **Prerequisites:** Processing and/or Java (very easy) **Difficulty level:** easy **Mentor:** Arlene Ducao (arlduc@mit.edu), Jeff Warren (jeff@publiclaboratory.org) ###Project: Interface design and NDVI readout, image storage### **Description:** A numerical NDVI readout averaging NDVI values for the whole video frame, plus buttons to switch between NDVI and NRG mode. A way to save/share images taken with the software. **Prerequisites:** Processing and/or Java (very easy) **Difficulty level:** easy **Mentor:** Arlene Ducao (arlduc@mit.edu), Jeff Warren (jeff@publiclaboratory.org) ###Project: adapt Android video interface### **Description:** Get the app running in Android to connect to the Android video class, abstracting so that it works on desktop and mobile devices. **Prerequisites:** Processing and/or Java, Android **Difficulty level:** medium **Mentor:** Arlene Ducao (arlduc@mit.edu), Jeff Warren (jeff@publiclaboratory.org) ###Project: Android Aerial Acquisition App### **Description:** Android app that does continuaous image shooting, assingning geodata to each image exif. Bonus feature; KML output for the image overlay locations. **Prerequisites:** Processing and/or Java, Android **Difficulty level:** easy-medium **Mentor:** Stewart Long (stewart@publiclaboratory.org), Jeff Warren (jeff@publiclaboratory.org) ##Details about the problem