Public Lab's software systems include several complete web applications (PublicLab.org, SpectralW...
Public Lab is an open community which collaboratively develops accessible, open source, Do-It-Yourself technologies for investigating local environmental health and justice issues.
6 CURRENT | warren |
December 02, 2020 15:47
| about 4 years ago
Public Lab's software systems include several complete web applications (PublicLab.org, SpectralWorkbench.org, and MapKnitter.org), as well as smaller stand-alone services (Infragram.org, sequencer.publiclab.org) and a variety of small libraries, utilities, and demos (Leaflet.DistortableImage, PublicLab.Editor, and many more). At the end of this document, find and ask Frequently Asked Questions (This overview was compiled in Oct/Nov 2020 by @warren with help from @sashadev-sky and @liz.) The central project is PublicLab.org and its "satellite" projects and utilities like the Editor. Others (MapKnitter, Spectral Workbench, Infragram) are in direct support of kits or projects, while many of the remaining projects listed above are lower-level infrastructural or utility projects, ranging from tools for blurring location data for privacy to collecting and organizing map layers, to cloud-based exporting services. Together these websites, tools, and services provide support in many ways and at many levels to the Public Lab community science network, the Public Lab staff, and the Kits initiative. PublicLab.orghttps://github.com/publiclab/plots2 Overview: The content management system for the Public Lab research community, plots2 hosts a collection of forum-like groups of people, posts, and wiki pages, each focused on a topic like water-quality or disaster-response. (Read about the data model here.) It includes a variety of features that help the Public Lab community collaborate on environmental activism, research, technology design and documentation, as well as community organizing. Originally a Drupal site, it was rewritten in 2012 in Ruby on Rails. The code is organized and structured around inclusive and welcoming community values, as part of our efforts to ensure that historically excluded groups are centered and supported in the crafting of this software project. Audience/accessibility: designed for a general audience, no particular familiarity with web conventions assumed, prioritize very low barrier interaction - low floor and wide walls over high ceiling. Usage, costs, contributor community: The Public Lab website served 543k users in the past 12 months and costs ~$670/month, or ~$8k/year to host. 456 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows:
Key features:
Goals: This codebase is now primarily moving towards feature stability, as highlighted in our Roadmap, but the next big requested features/systems could include:
Maintenance overhead/debt: major drivers of maintenance burden are a deep queue of issues, overall complexity of the codebase, long-term projects like deprecating legacy systems, and feature sprawl, uniqueness and customizability of our platform (pro and con) Sub-libraries
Infragramhttps://github.com/publiclab/infragram Overview: The Infragram project brings together a range of different efforts to make Do-It-Yourself plant health comparisons possible with infrared photography. It makes processing photographs using the NDVI imaging technique into a simple web-based process instead of one which requires less accessible scientific software. This project was made possible with support from Google and the AREN Project at NASA. Audience/accessibility: people with an Infragram-family kit, or interested in viewing images. Classroom use in relation to the NASA AREN project. Wetlands researchers. Which kits use it: Infragram kit family: hacked cameras, Raspberry Pi cameras, webcams Topics: water-quality, agriculture, wetlands Usage, costs, contributor community: ~6k users per year, no cost (due to development of "standalone" edition). ~10 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows:
Key features include:
Goals (requested features / stretch goals):
Maintenance overhead/debt: minimal: needs some webcam API updates. Sub-libraries/satellites:
Image Sequencerhttps://github.com/publiclab/image-sequencer Overview: Image Sequencer is different from other image processing systems because it's non-destructive: instead of modifying the original image, it creates a new image at each step in a sequence. Image Sequencer plays an important utility-level role in various Public Lab tools and kits, but it is also architected from the ground up to be easy to contribute to for newcomers, and has an equivalently high rate of newcomer contribution and overall community size and growth trajectory. Very high retention of volunteer contributors. Audience/accessibility: Educators, students, Infragram/NDVI DIY community, casual users looking for browser or phone-based image processing, NodeJS developers seeking a pure-JavaScript image library, people removing lens distortion from images. Which kits use it: Infragram, Pi camera Topics: same as InfragramUsage, costs, contributor community: Unknown usage as we don't track, and it's a utility library, no hosting cost (purely browser-based). 100+ contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows: Upload an image, select a module and Apply it, repeat for any number of modules, download final image. Drag new images into top of sequence to run the same steps on them. Share the URL to enable other people to use the same sequence. Key features:
Goals (requested features / stretch goals): improved test coverage, design refinements, bugfixes Maintenance overhead/debt: Minimal; lots of progress in the past year or so and we are also prototyping a shared community maintenance structure with rotating/overlapping responsibilities SpectralWorkbenchhttps://github.com/publiclab/spectral-workbench Overview: Spectral Workbench is an open-source tool to perform low-cost spectral analysis and to share those results online. It consists of a Ruby on Rails web application for publishing, archiving, discussing, and analyzing spectra online -- running at https://spectralworkbench.org The core library for analyzing and manipulating spectral data has been spun out into its own self-contained JavaScript module; see below. Audience/accessibility: People using DIY spectrometers (largely from Public Lab kits) for data collection, education, materials comparisons. These tend to be very high familiarity with web systems, but this is likely self-fulfilling as accessibility issues may present a barrier to others. That said, unlike popular platforms like Raspberry Pi or Arduino, it requires no coding to use and is a fully browser-based user interface. Which kits use it: Spectrometry kits, esp Lego spectrometer and Papercraft spectrometer Topics: spectrometry, water-quality, agriculture, air-quality Usage, costs, contributor community: This website served 50k users in the past 12 months, and has helped 20k users to upload and analyze 180k spectra from DIY spectrometers since ~2011. It costs ~$180/month, or ~$2k/year to host. ~30 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. A standalone, browser-only version is in development which could eliminate hosting costs if needed (see spectral-workbench.js below). Basic workflows: Build spectrometer, plug it in via USB cable (or attach to phone with tape), visit SpectralWorkbench.org, click Capture spectra, configure camera, begin recording spectrum. Point at a fluorescent bulb and save, follow calibration sequence. Return to Capture page to use calibrated spectrometer. Clean and process saved spectra, compare spectra by collecting them in a set. Embed them on another site to share. Alternatively: upload saved images of spectra to bypass live capture. Key features:
Goals (requested features / stretch goals):
Maintenance overhead/debt:
Sub-libraries/satellites:
MapKnitterhttps://github.com/publiclab/mapknitter Overview: MapKnitter is a free and open source tool for combining aerial images into a map, or composite image. Informally, we call this "stitching a map" and it's useful if you have many images of overlapping or identical areas, and getting either a web map or a printable map from your photos. Made possible with development funding from Google's Office of Open Source, MapKnitter is now in its 3rd major version, but it dates back to before Public Lab existed and is our longest-running piece of software. The origins of MapKnitter and it's unique design choices is documented in Jeffrey Yoo Warren's master's thesis. Audience/accessibility: Non-GIS specialists who have aerial photos and want to create a flat digital or print map from them. Which kits use it: Balloon mapping, kite mapping, Pole mapping Topics: water-quality, disaster-response, oil-and-gas, agriculture, wetlands Usage, costs, contributor community: This website served 14-19k users per year since 2010, and has helped over 3400 people to make more than 6500 maps . It costs ~$500/month, or ~$6k/year to host. ~80-150 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. A standalone, browser-only version is in development which could eliminate hosting costs if needed (see Leaflet.DistortableImage below). Key features:
Goals (requested features / stretch goals):
Maintenance overhead/debt:
Sub-libraries/satellites:
Leaflet.DistortableImagehttps://github.com/publiclab/mapknitter Overview: A Leaflet library for rubber-sheeting aerial images onto maps; the heart of MapKnitter's interactive tool without the underlying database or image upload and storage. As a self-contained library, it's reusable by other projects and some development cost/capacity is shared with other orgs as a result. Integrated into MapKnitter web application. Audience/accessibility: Developers comfortable with JavaScript; this is a utility for larger mapping applications. Which kits use it: Same as MapKnitter Topics: Same as MapKnitter Usage, costs, contributor community: Shares user base with MapKnitter, no cost, 70+ contributors (subset of MapKnitter) Key features:
Goals (requested features / stretch goals): Better integration/fixes for GPS EXIF tag reading, ability to queue cloud exports without MapKnitter, ability to run offline from an SD card. Maintenance overhead/debt: Minimal. Questions[questions:software-overview] |
Revert | |
5 | warren |
December 02, 2020 15:43
| about 4 years ago
Public Lab's software systems include several complete web applications (PublicLab.org, SpectralWorkbench.org, and MapKnitter.org), as well as smaller stand-alone services (Infragram.org, sequencer.publiclab.org) and a variety of small libraries, utilities, and demos (Leaflet.DistortableImage, PublicLab.Editor, and many more). At the end of this document, find and ask Frequently Asked Questions (This overview was compiled in Oct/Nov 2020 by @warren with help from @sashadev-sky and @liz.) The central project is PublicLab.org and its "satellite" projects and utilities like the Editor. Others (MapKnitter, Spectral Workbench, Infragram) are in direct support of kits or projects, while many of the remaining projects listed above are lower-level infrastructural or utility projects, ranging from tools for blurring location data for privacy to collecting and organizing map layers, to cloud-based exporting services. Together these websites, tools, and services provide support in many ways and at many levels to the Public Lab community science network, the Public Lab staff, and the Kits initiative. PublicLab.orghttps://github.com/publiclab/plots2 Overview: The content management system for the Public Lab research community, plots2 hosts a collection of forum-like groups of people, posts, and wiki pages, each focused on a topic like water-quality or disaster-response. (Read about the data model here.) It includes a variety of features that help the Public Lab community collaborate on environmental activism, research, technology design and documentation, as well as community organizing. Originally a Drupal site, it was rewritten in 2012 in Ruby on Rails. The code is organized and structured around inclusive and welcoming community values, as part of our efforts to ensure that historically excluded groups are centered and supported in the crafting of this software project. Audience/accessibility: designed for a general audience, no particular familiarity with web conventions assumed, prioritize very low barrier interaction - low floor and wide walls over high ceiling. Usage, costs, contributor community: The Public Lab website served 543k users in the past 12 months and costs ~$670/month, or ~$8k/year to host. 456 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows:
Key features:
Goals: This codebase is now primarily moving towards feature stability, as highlighted in our Roadmap, but the next big requested features/systems could include:
Maintenance overhead/debt: major drivers of maintenance burden are a deep queue of issues, overall complexity of the codebase, long-term projects like deprecating legacy systems, and feature sprawl, uniqueness and customizability of our platform (pro and con) Sub-libraries
Infragramhttps://github.com/publiclab/infragram Overview: The Infragram project brings together a range of different efforts to make Do-It-Yourself plant health comparisons possible with infrared photography. It makes processing photographs using the NDVI imaging technique into a simple web-based process instead of one which requires less accessible scientific software. This project was made possible with support from Google and the AREN Project at NASA. Audience/accessibility: people with an Infragram-family kit, or interested in viewing images. Classroom use in relation to the NASA AREN project. Wetlands researchers. Which kits use it: Infragram kit family: hacked cameras, Raspberry Pi cameras, webcams Topics: water-quality, agriculture, wetlands Usage, costs, contributor community: ~6k users per year, no cost (due to development of "standalone" edition). ~10 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows:
Key features include:
Goals (requested features / stretch goals):
Maintenance overhead/debt: minimal: needs some webcam API updates. Sub-libraries/satellites:
Image Sequencerhttps://github.com/publiclab/image-sequencer Overview: Image Sequencer is different from other image processing systems because it's non-destructive: instead of modifying the original image, it creates a new image at each step in a sequence. Image Sequencer plays an important utility-level role in various Public Lab tools and kits, but it is also architected from the ground up to be easy to contribute to for newcomers, and has an equivalently high rate of newcomer contribution and overall community size and growth trajectory. Very high retention of volunteer contributors. Audience/accessibility: Educators, students, Infragram/NDVI DIY community, casual users looking for browser or phone-based image processing, NodeJS developers seeking a pure-JavaScript image library, people removing lens distortion from images. Which kits use it: Infragram, Pi camera Topics: same as InfragramUsage, costs, contributor community: Unknown usage as we don't track, and it's a utility library, no hosting cost (purely browser-based). 100+ contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows: Upload an image, select a module and Apply it, repeat for any number of modules, download final image. Drag new images into top of sequence to run the same steps on them. Share the URL to enable other people to use the same sequence. Key features:
Goals (requested features / stretch goals): improved test coverage, design refinements, bugfixes Maintenance overhead/debt: Minimal; lots of progress in the past year or so and we are also prototyping a shared community maintenance structure with rotating/overlapping responsibilities SpectralWorkbenchhttps://github.com/publiclab/spectral-workbench Overview: Spectral Workbench is an open-source tool to perform low-cost spectral analysis and to share those results online. It consists of a Ruby on Rails web application for publishing, archiving, discussing, and analyzing spectra online -- running at https://spectralworkbench.org The core library for analyzing and manipulating spectral data has been spun out into its own self-contained JavaScript module; see below. Audience/accessibility: People using DIY spectrometers (largely from Public Lab kits) for data collection, education, materials comparisons. These tend to be very high familiarity with web systems, but this is likely self-fulfilling as accessibility issues may present a barrier to others. That said, unlike popular platforms like Raspberry Pi or Arduino, it requires no coding to use and is a fully browser-based user interface. Which kits use it: Spectrometry kits, esp Lego spectrometer and Papercraft spectrometer Topics: spectrometry, water-quality, agriculture, air-quality Usage, costs, contributor community: This website served 50k users in the past 12 months, and has helped 20k users to upload and analyze 180k spectra from DIY spectrometers since ~2011. It costs ~$180/month, or ~$2k/year to host. ~30 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. A standalone, browser-only version is in development which could eliminate hosting costs if needed (see spectral-workbench.js below). Basic workflows: Build spectrometer, plug it in via USB cable (or attach to phone with tape), visit SpectralWorkbench.org, click Capture spectra, configure camera, begin recording spectrum. Point at a fluorescent bulb and save, follow calibration sequence. Return to Capture page to use calibrated spectrometer. Clean and process saved spectra, compare spectra by collecting them in a set. Embed them on another site to share. Alternatively: upload saved images of spectra to bypass live capture. Key features:
Goals (requested features / stretch goals):
Maintenance overhead/debt:
Sub-libraries/satellites:
MapKnitterhttps://github.com/publiclab/mapknitter Overview: MapKnitter is a free and open source tool for combining aerial images into a map, or composite image. Informally, we call this "stitching a map" and it's useful if you have many images of overlapping or identical areas, and getting either a web map or a printable map from your photos. Made possible with development funding from Google's Office of Open Source, MapKnitter is now in its 3rd major version, but it dates back to before Public Lab existed and is our longest-running piece of software. The origins of MapKnitter and it's unique design choices is documented in Jeffrey Yoo Warren's master's thesis. Audience/accessibility: Non-GIS specialists who have aerial photos and want to create a flat digital or print map from them. Which kits use it: Balloon mapping, kite mapping, Pole mapping Topics: water-quality, disaster-response, oil-and-gas, agriculture, wetlands Usage, costs, contributor community: This website served 14-19k users per year since 2010, and has helped over 3400 people to make more than 6500 maps . It costs ~$500/month, or ~$6k/year to host. ~80-150 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. A standalone, browser-only version is in development which could eliminate hosting costs if needed (see Leaflet.DistortableImage below). Key features:
Goals (requested features / stretch goals):
Maintenance overhead/debt:
Sub-libraries/satellites:
Leaflet.DistortableImagehttps://github.com/publiclab/mapknitter Overview: A Leaflet library for rubber-sheeting aerial images onto maps; the heart of MapKnitter's interactive tool without the underlying database or image upload and storage. As a self-contained library, it's reusable by other projects and some development cost/capacity is shared with other orgs as a result. Integrated into MapKnitter web application. Audience/accessibility: Developers comfortable with JavaScript; this is a utility for larger mapping applications. Which kits use it: Same as MapKnitter Topics: Same as MapKnitter Usage, costs, contributor community: Shares user base with MapKnitter, no cost, 70+ contributors (subset of MapKnitter) Key features:
Goals (requested features / stretch goals): Better integration/fixes for GPS EXIF tag reading, ability to queue cloud exports without MapKnitter, ability to run offline from an SD card. Maintenance overhead/debt: Minimal. Questions[questions:software-overview] |
Revert | |
4 | warren |
December 02, 2020 15:42
| about 4 years ago
Public Lab's software systems include several complete web applications (PublicLab.org, SpectralWorkbench.org, and MapKnitter.org), as well as smaller stand-alone services (Infragram.org, sequencer.publiclab.org) and a variety of small libraries, utilities, and demos (Leaflet.DistortableImage, PublicLab.Editor, and many more). (This overview was compiled in Oct/Nov 2020 by @warren with help from @sashadev-sky and @liz.) The central project is PublicLab.org and its "satellite" projects and utilities like the Editor. Others (MapKnitter, Spectral Workbench, Infragram) are in direct support of kits or projects, while many of the remaining projects listed above are lower-level infrastructural or utility projects, ranging from tools for blurring location data for privacy to collecting and organizing map layers, to cloud-based exporting services. Together these websites, tools, and services provide support in many ways and at many levels to the Public Lab community science network, the Public Lab staff, and the Kits initiative. PublicLab.orghttps://github.com/publiclab/plots2 Overview: The content management system for the Public Lab research community, plots2 hosts a collection of forum-like groups of people, posts, and wiki pages, each focused on a topic like water-quality or disaster-response. (Read about the data model here.) It includes a variety of features that help the Public Lab community collaborate on environmental activism, research, technology design and documentation, as well as community organizing. Originally a Drupal site, it was rewritten in 2012 in Ruby on Rails. The code is organized and structured around inclusive and welcoming community values, as part of our efforts to ensure that historically excluded groups are centered and supported in the crafting of this software project. Audience/accessibility: designed for a general audience, no particular familiarity with web conventions assumed, prioritize very low barrier interaction - low floor and wide walls over high ceiling. Usage, costs, contributor community: The Public Lab website served 543k users in the past 12 months and costs ~$670/month, or ~$8k/year to host. 456 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows:
Key features:
Goals: This codebase is now primarily moving towards feature stability, as highlighted in our Roadmap, but the next big requested features/systems could include:
Maintenance overhead/debt: major drivers of maintenance burden are a deep queue of issues, overall complexity of the codebase, long-term projects like deprecating legacy systems, and feature sprawl, uniqueness and customizability of our platform (pro and con) Sub-libraries
Infragramhttps://github.com/publiclab/infragram Overview: The Infragram project brings together a range of different efforts to make Do-It-Yourself plant health comparisons possible with infrared photography. It makes processing photographs using the NDVI imaging technique into a simple web-based process instead of one which requires less accessible scientific software. This project was made possible with support from Google and the AREN Project at NASA. Audience/accessibility: people with an Infragram-family kit, or interested in viewing images. Classroom use in relation to the NASA AREN project. Wetlands researchers. Which kits use it: Infragram kit family: hacked cameras, Raspberry Pi cameras, webcams Topics: water-quality, agriculture, wetlands Usage, costs, contributor community: ~6k users per year, no cost (due to development of "standalone" edition). ~10 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows:
Key features include:
Goals (requested features / stretch goals):
Maintenance overhead/debt: minimal: needs some webcam API updates. Sub-libraries/satellites:
Image Sequencerhttps://github.com/publiclab/image-sequencer Overview: Image Sequencer is different from other image processing systems because it's non-destructive: instead of modifying the original image, it creates a new image at each step in a sequence. Image Sequencer plays an important utility-level role in various Public Lab tools and kits, but it is also architected from the ground up to be easy to contribute to for newcomers, and has an equivalently high rate of newcomer contribution and overall community size and growth trajectory. Very high retention of volunteer contributors. Audience/accessibility: Educators, students, Infragram/NDVI DIY community, casual users looking for browser or phone-based image processing, NodeJS developers seeking a pure-JavaScript image library, people removing lens distortion from images. Which kits use it: Infragram, Pi camera Topics: same as InfragramUsage, costs, contributor community: Unknown usage as we don't track, and it's a utility library, no hosting cost (purely browser-based). 100+ contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows: Upload an image, select a module and Apply it, repeat for any number of modules, download final image. Drag new images into top of sequence to run the same steps on them. Share the URL to enable other people to use the same sequence. Key features:
Goals (requested features / stretch goals): improved test coverage, design refinements, bugfixes Maintenance overhead/debt: Minimal; lots of progress in the past year or so and we are also prototyping a shared community maintenance structure with rotating/overlapping responsibilities SpectralWorkbenchhttps://github.com/publiclab/spectral-workbench Overview: Spectral Workbench is an open-source tool to perform low-cost spectral analysis and to share those results online. It consists of a Ruby on Rails web application for publishing, archiving, discussing, and analyzing spectra online -- running at https://spectralworkbench.org The core library for analyzing and manipulating spectral data has been spun out into its own self-contained JavaScript module; see below. Audience/accessibility: People using DIY spectrometers (largely from Public Lab kits) for data collection, education, materials comparisons. These tend to be very high familiarity with web systems, but this is likely self-fulfilling as accessibility issues may present a barrier to others. That said, unlike popular platforms like Raspberry Pi or Arduino, it requires no coding to use and is a fully browser-based user interface. Which kits use it: Spectrometry kits, esp Lego spectrometer and Papercraft spectrometer Topics: spectrometry, water-quality, agriculture, air-quality Usage, costs, contributor community: This website served 50k users in the past 12 months, and has helped 20k users to upload and analyze 180k spectra from DIY spectrometers since ~2011. It costs ~$180/month, or ~$2k/year to host. ~30 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. A standalone, browser-only version is in development which could eliminate hosting costs if needed (see spectral-workbench.js below). Basic workflows: Build spectrometer, plug it in via USB cable (or attach to phone with tape), visit SpectralWorkbench.org, click Capture spectra, configure camera, begin recording spectrum. Point at a fluorescent bulb and save, follow calibration sequence. Return to Capture page to use calibrated spectrometer. Clean and process saved spectra, compare spectra by collecting them in a set. Embed them on another site to share. Alternatively: upload saved images of spectra to bypass live capture. Key features:
Goals (requested features / stretch goals):
Maintenance overhead/debt:
Sub-libraries/satellites:
MapKnitterhttps://github.com/publiclab/mapknitter Overview: MapKnitter is a free and open source tool for combining aerial images into a map, or composite image. Informally, we call this "stitching a map" and it's useful if you have many images of overlapping or identical areas, and getting either a web map or a printable map from your photos. Made possible with development funding from Google's Office of Open Source, MapKnitter is now in its 3rd major version, but it dates back to before Public Lab existed and is our longest-running piece of software. The origins of MapKnitter and it's unique design choices is documented in Jeffrey Yoo Warren's master's thesis. Audience/accessibility: Non-GIS specialists who have aerial photos and want to create a flat digital or print map from them. Which kits use it: Balloon mapping, kite mapping, Pole mapping Topics: water-quality, disaster-response, oil-and-gas, agriculture, wetlands Usage, costs, contributor community: This website served 14-19k users per year since 2010, and has helped over 3400 people to make more than 6500 maps . It costs ~$500/month, or ~$6k/year to host. ~80-150 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. A standalone, browser-only version is in development which could eliminate hosting costs if needed (see Leaflet.DistortableImage below). Key features:
Goals (requested features / stretch goals):
Maintenance overhead/debt:
Sub-libraries/satellites:
Leaflet.DistortableImagehttps://github.com/publiclab/mapknitter Overview: A Leaflet library for rubber-sheeting aerial images onto maps; the heart of MapKnitter's interactive tool without the underlying database or image upload and storage. As a self-contained library, it's reusable by other projects and some development cost/capacity is shared with other orgs as a result. Integrated into MapKnitter web application. Audience/accessibility: Developers comfortable with JavaScript; this is a utility for larger mapping applications. Which kits use it: Same as MapKnitter Topics: Same as MapKnitter Usage, costs, contributor community: Shares user base with MapKnitter, no cost, 70+ contributors (subset of MapKnitter) Key features:
Goals (requested features / stretch goals): Better integration/fixes for GPS EXIF tag reading, ability to queue cloud exports without MapKnitter, ability to run offline from an SD card. Maintenance overhead/debt: Minimal. Questions[questions:software-overview] |
Revert | |
3 | warren |
November 24, 2020 20:50
| about 4 years ago
Public Lab's software systems include several complete web applications (PublicLab.org, SpectralWorkbench.org, and MapKnitter.org), as well as smaller stand-alone services (Infragram.org, sequencer.publiclab.org) and a variety of small libraries, utilities, and demos (Leaflet.DistortableImage, PublicLab.Editor, and many more). (This overview was compiled in Oct/Nov 2020 by @warren with help from @sashadev-sky and @liz.) The central project is PublicLab.org and its "satellite" projects and utilities like the Editor. Others (MapKnitter, Spectral Workbench, Infragram) are in direct support of kits or projects, while many of the remaining projects listed above are lower-level infrastructural or utility projects, ranging from tools for blurring location data for privacy to collecting and organizing map layers, to cloud-based exporting services. Together these websites, tools, and services provide support in many ways and at many levels to the Public Lab community science network, the Public Lab staff, and the Kits initiative. PublicLab.orghttps://github.com/publiclab/plots2 Overview: The content management system for the Public Lab research community, plots2 hosts a collection of forum-like groups of people, posts, and wiki pages, each focused on a topic like water-quality or disaster-response. (Read about the data model here.) It includes a variety of features that help the Public Lab community collaborate on environmental activism, research, technology design and documentation, as well as community organizing. Originally a Drupal site, it was rewritten in 2012 in Ruby on Rails. The code is organized and structured around inclusive and welcoming community values, as part of our efforts to ensure that historically excluded groups are centered and supported in the crafting of this software project. Audience/accessibility: designed for a general audience, no particular familiarity with web conventions assumed, prioritize very low barrier interaction - low floor and wide walls over high ceiling. Usage, costs, contributor community: The Public Lab website served 543k users in the past 12 months and costs ~$670/month, or ~$8k/year to host. 456 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows:
Key features:
Goals: This codebase is now primarily moving towards feature stability, as highlighted in our Roadmap, but the next big requested features/systems could include:
Maintenance overhead/debt: major drivers of maintenance burden are a deep queue of issues, overall complexity of the codebase, long-term projects like deprecating legacy systems, and feature sprawl, uniqueness and customizability of our platform (pro and con) Sub-libraries
Infragramhttps://github.com/publiclab/infragram Overview: The Infragram project brings together a range of different efforts to make Do-It-Yourself plant health comparisons possible with infrared photography. It makes processing photographs using the NDVI imaging technique into a simple web-based process instead of one which requires less accessible scientific software. This project was made possible with support from Google and the AREN Project at NASA. Audience/accessibility: people with an Infragram-family kit, or interested in viewing images. Classroom use in relation to the NASA AREN project. Wetlands researchers. Which kits use it: Infragram kit family: hacked cameras, Raspberry Pi cameras, webcams Topics: water-quality, agriculture, wetlands Usage, costs, contributor community: ~6k users per year, no cost (due to development of "standalone" edition). ~10 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows:
Key features include:
Goals (requested features / stretch goals):
Maintenance overhead/debt: minimal: needs some webcam API updates. Sub-libraries/satellites:
Image Sequencerhttps://github.com/publiclab/image-sequencer Overview: Image Sequencer is different from other image processing systems because it's non-destructive: instead of modifying the original image, it creates a new image at each step in a sequence. Image Sequencer plays an important utility-level role in various Public Lab tools and kits, but it is also architected from the ground up to be easy to contribute to for newcomers, and has an equivalently high rate of newcomer contribution and overall community size and growth trajectory. Very high retention of volunteer contributors. Audience/accessibility: Educators, students, Infragram/NDVI DIY community, casual users looking for browser or phone-based image processing, NodeJS developers seeking a pure-JavaScript image library, people removing lens distortion from images. Which kits use it: Infragram, Pi camera Topics: same as InfragramUsage, costs, contributor community: Unknown usage as we don't track, and it's a utility library, no hosting cost (purely browser-based). 100+ contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows: Upload an image, select a module and Apply it, repeat for any number of modules, download final image. Drag new images into top of sequence to run the same steps on them. Share the URL to enable other people to use the same sequence. Key features:
Goals (requested features / stretch goals): improved test coverage, design refinements, bugfixes Maintenance overhead/debt: Minimal; lots of progress in the past year or so and we are also prototyping a shared community maintenance structure with rotating/overlapping responsibilities SpectralWorkbenchhttps://github.com/publiclab/spectral-workbench Overview: Spectral Workbench is an open-source tool to perform low-cost spectral analysis and to share those results online. It consists of a Ruby on Rails web application for publishing, archiving, discussing, and analyzing spectra online -- running at https://spectralworkbench.org The core library for analyzing and manipulating spectral data has been spun out into its own self-contained JavaScript module; see below. Audience/accessibility: People using DIY spectrometers (largely from Public Lab kits) for data collection, education, materials comparisons. These tend to be very high familiarity with web systems, but this is likely self-fulfilling as accessibility issues may present a barrier to others. That said, unlike popular platforms like Raspberry Pi or Arduino, it requires no coding to use and is a fully browser-based user interface. Which kits use it: Spectrometry kits, esp Lego spectrometer and Papercraft spectrometer Topics: spectrometry, water-quality, agriculture, air-quality Usage, costs, contributor community: This website served 50k users in the past 12 months, and has helped 20k users to upload and analyze 180k spectra from DIY spectrometers since ~2011. It costs ~$180/month, or ~$2k/year to host. ~30 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. A standalone, browser-only version is in development which could eliminate hosting costs if needed (see spectral-workbench.js below). Basic workflows: Build spectrometer, plug it in via USB cable (or attach to phone with tape), visit SpectralWorkbench.org, click Capture spectra, configure camera, begin recording spectrum. Point at a fluorescent bulb and save, follow calibration sequence. Return to Capture page to use calibrated spectrometer. Clean and process saved spectra, compare spectra by collecting them in a set. Embed them on another site to share. Alternatively: upload saved images of spectra to bypass live capture. Key features:
Goals (requested features / stretch goals):
Maintenance overhead/debt:
Sub-libraries/satellites:
MapKnitterhttps://github.com/publiclab/mapknitter Overview: MapKnitter is a free and open source tool for combining aerial images into a map, or composite image. Informally, we call this "stitching a map" and it's useful if you have many images of overlapping or identical areas, and getting either a web map or a printable map from your photos. Made possible with development funding from Google's Office of Open Source, MapKnitter is now in its 3rd major version, but it dates back to before Public Lab existed and is our longest-running piece of software. The origins of MapKnitter and it's unique design choices is documented in Jeffrey Yoo Warren's master's thesis. Audience/accessibility: Non-GIS specialists who have aerial photos and want to create a flat digital or print map from them. Which kits use it: Balloon mapping, kite mapping, Pole mapping Topics: water-quality, disaster-response, oil-and-gas, agriculture, wetlands Usage, costs, contributor community: This website served 14-19k users per year since 2010, and has helped over 3400 people to make more than 6500 maps . It costs ~$500/month, or ~$6k/year to host. ~80-150 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. A standalone, browser-only version is in development which could eliminate hosting costs if needed (see Leaflet.DistortableImage below). Key features:
Goals (requested features / stretch goals):
Maintenance overhead/debt:
Sub-libraries/satellites:
Leaflet.DistortableImagehttps://github.com/publiclab/mapknitter Overview: A Leaflet library for rubber-sheeting aerial images onto maps; the heart of MapKnitter's interactive tool without the underlying database or image upload and storage. As a self-contained library, it's reusable by other projects and some development cost/capacity is shared with other orgs as a result. Integrated into MapKnitter web application. Audience/accessibility: Developers comfortable with JavaScript; this is a utility for larger mapping applications. Which kits use it: Same as MapKnitter Topics: Same as MapKnitter Usage, costs, contributor community: Shares user base with MapKnitter, no cost, 70+ contributors (subset of MapKnitter) Key features:
Goals (requested features / stretch goals): Better integration/fixes for GPS EXIF tag reading, ability to queue cloud exports without MapKnitter, ability to run offline from an SD card. Maintenance overhead/debt: Minimal. |
Revert | |
2 | warren |
November 24, 2020 20:45
| about 4 years ago
Public Lab's software systems include several complete web applications (PublicLab.org, SpectralWorkbench.org, and MapKnitter.org), as well as smaller stand-alone services (Infragram.org, sequencer.publiclab.org) and a variety of small libraries, utilities, and demos (Leaflet.DistortableImage, PublicLab.Editor, and many more). The central project is PublicLab.org and its "satellite" projects and utilities like the Editor. Others (MapKnitter, Spectral Workbench, Infragram) are in direct support of kits or projects, while many of the remaining projects listed above are lower-level infrastructural or utility projects, ranging from tools for blurring location data for privacy to collecting and organizing map layers, to cloud-based exporting services. Together these websites, tools, and services provide support in many ways and at many levels to the Public Lab community science network, the Public Lab staff, and the Kits initiative. PublicLab.orghttps://github.com/publiclab/plots2 Overview: The content management system for the Public Lab research community, plots2 hosts a collection of forum-like groups of people, posts, and wiki pages, each focused on a topic like water-quality or disaster-response. (Read about the data model here.) It includes a variety of features that help the Public Lab community collaborate on environmental activism, research, technology design and documentation, as well as community organizing. Originally a Drupal site, it was rewritten in 2012 in Ruby on Rails. The code is organized and structured around inclusive and welcoming community values, as part of our efforts to ensure that historically excluded groups are centered and supported in the crafting of this software project. Audience/accessibility: designed for a general audience, no particular familiarity with web conventions assumed, prioritize very low barrier interaction - low floor and wide walls over high ceiling. Usage, costs, contributor community: The Public Lab website served 543k users in the past 12 months and costs ~$670/month, or ~$8k/year to host. 456 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows:
Key features:
Goals: This codebase is now primarily moving towards feature stability, as highlighted in our Roadmap, but the next big requested features/systems could include:
Maintenance overhead/debt: major drivers of maintenance burden are a deep queue of issues, overall complexity of the codebase, long-term projects like deprecating legacy systems, and feature sprawl, uniqueness and customizability of our platform (pro and con) Sub-libraries
Infragramhttps://github.com/publiclab/infragram Overview: The Infragram project brings together a range of different efforts to make Do-It-Yourself plant health comparisons possible with infrared photography. It makes processing photographs using the NDVI imaging technique into a simple web-based process instead of one which requires less accessible scientific software. This project was made possible with support from Google and the AREN Project at NASA. Audience/accessibility: people with an Infragram-family kit, or interested in viewing images. Classroom use in relation to the NASA AREN project. Wetlands researchers. Which kits use it: Infragram kit family: hacked cameras, Raspberry Pi cameras, webcams Topics: water-quality, agriculture, wetlands Usage, costs, contributor community: ~6k users per year, no cost (due to development of "standalone" edition). ~10 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows:
Key features include:
Goals (requested features / stretch goals):
Maintenance overhead/debt: minimal: needs some webcam API updates. Sub-libraries/satellites:
Image Sequencerhttps://github.com/publiclab/image-sequencer Overview: Image Sequencer is different from other image processing systems because it's non-destructive: instead of modifying the original image, it creates a new image at each step in a sequence. Image Sequencer plays an important utility-level role in various Public Lab tools and kits, but it is also architected from the ground up to be easy to contribute to for newcomers, and has an equivalently high rate of newcomer contribution and overall community size and growth trajectory. Very high retention of volunteer contributors. Audience/accessibility: Educators, students, Infragram/NDVI DIY community, casual users looking for browser or phone-based image processing, NodeJS developers seeking a pure-JavaScript image library, people removing lens distortion from images. Which kits use it: Infragram, Pi camera Topics: same as InfragramUsage, costs, contributor community: Unknown usage as we don't track, and it's a utility library, no hosting cost (purely browser-based). 100+ contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows: Upload an image, select a module and Apply it, repeat for any number of modules, download final image. Drag new images into top of sequence to run the same steps on them. Share the URL to enable other people to use the same sequence. Key features:
Goals (requested features / stretch goals): improved test coverage, design refinements, bugfixes Maintenance overhead/debt: Minimal; lots of progress in the past year or so and we are also prototyping a shared community maintenance structure with rotating/overlapping responsibilities SpectralWorkbenchhttps://github.com/publiclab/spectral-workbench Overview: Spectral Workbench is an open-source tool to perform low-cost spectral analysis and to share those results online. It consists of a Ruby on Rails web application for publishing, archiving, discussing, and analyzing spectra online -- running at https://spectralworkbench.org The core library for analyzing and manipulating spectral data has been spun out into its own self-contained JavaScript module; see below. Audience/accessibility: People using DIY spectrometers (largely from Public Lab kits) for data collection, education, materials comparisons. These tend to be very high familiarity with web systems, but this is likely self-fulfilling as accessibility issues may present a barrier to others. That said, unlike popular platforms like Raspberry Pi or Arduino, it requires no coding to use and is a fully browser-based user interface. Which kits use it: Spectrometry kits, esp Lego spectrometer and Papercraft spectrometer Topics: spectrometry, water-quality, agriculture, air-quality Usage, costs, contributor community: This website served 50k users in the past 12 months, and has helped 20k users to upload and analyze 180k spectra from DIY spectrometers since ~2011. It costs ~$180/month, or ~$2k/year to host. ~30 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. A standalone, browser-only version is in development which could eliminate hosting costs if needed (see spectral-workbench.js below). Basic workflows: Build spectrometer, plug it in via USB cable (or attach to phone with tape), visit SpectralWorkbench.org, click Capture spectra, configure camera, begin recording spectrum. Point at a fluorescent bulb and save, follow calibration sequence. Return to Capture page to use calibrated spectrometer. Clean and process saved spectra, compare spectra by collecting them in a set. Embed them on another site to share. Alternatively: upload saved images of spectra to bypass live capture. Key features:
Goals (requested features / stretch goals):
Maintenance overhead/debt:
Sub-libraries/satellites:
MapKnitterhttps://github.com/publiclab/mapknitter Overview: MapKnitter is a free and open source tool for combining aerial images into a map, or composite image. Informally, we call this "stitching a map" and it's useful if you have many images of overlapping or identical areas, and getting either a web map or a printable map from your photos. Made possible with development funding from Google's Office of Open Source, MapKnitter is now in its 3rd major version, but it dates back to before Public Lab existed and is our longest-running piece of software. The origins of MapKnitter and it's unique design choices is documented in Jeffrey Yoo Warren's master's thesis. Audience/accessibility: Non-GIS specialists who have aerial photos and want to create a flat digital or print map from them. Which kits use it: Balloon mapping, kite mapping, Pole mapping Topics: water-quality, disaster-response, oil-and-gas, agriculture, wetlands Usage, costs, contributor community: This website served 14-19k users per year since 2010, and has helped over 3400 people to make more than 6500 maps . It costs ~$500/month, or ~$6k/year to host. ~80-150 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. A standalone, browser-only version is in development which could eliminate hosting costs if needed (see Leaflet.DistortableImage below). Key features:
Goals (requested features / stretch goals):
Maintenance overhead/debt:
Sub-libraries/satellites:
Leaflet.DistortableImagehttps://github.com/publiclab/mapknitter Overview: A Leaflet library for rubber-sheeting aerial images onto maps; the heart of MapKnitter's interactive tool without the underlying database or image upload and storage. As a self-contained library, it's reusable by other projects and some development cost/capacity is shared with other orgs as a result. Integrated into MapKnitter web application. Audience/accessibility: Developers comfortable with JavaScript; this is a utility for larger mapping applications. Which kits use it: Same as MapKnitter Topics: Same as MapKnitter Usage, costs, contributor community: Shares user base with MapKnitter, no cost, 70+ contributors (subset of MapKnitter) Key features:
Goals (requested features / stretch goals): Better integration/fixes for GPS EXIF tag reading, ability to queue cloud exports without MapKnitter, ability to run offline from an SD card. Maintenance overhead/debt: Minimal. |
Revert | |
1 | warren |
November 24, 2020 20:43
| about 4 years ago
Public Lab's software systems include several complete web applications (PublicLab.org, SpectralWorkbench.org, and MapKnitter.org), as well as smaller stand-alone services (Infragram.org, sequencer.publiclab.org) and a variety of small libraries, utilities, and demos (Leaflet.DistortableImage, PublicLab.Editor, and many more). The central project is PublicLab.org and its "satellite" projects and utilities like the Editor. Others (MapKnitter, Spectral Workbench, Infragram) are in direct support of kits or projects, while many of the remaining projects listed above are lower-level infrastructural or utility projects, ranging from tools for blurring location data for privacy to collecting and organizing map layers, to cloud-based exporting services. Together these websites, tools, and services provide support in many ways and at many levels to the Public Lab community science network, the Public Lab staff, and the Kits initiative. PublicLab.orghttps://github.com/publiclab/plots2 Overview: The content management system for the Public Lab research community, plots2 hosts a collection of forum-like groups of people, posts, and wiki pages, each focused on a topic like water-quality or disaster-response. (Read about the data model here.) It includes a variety of features that help the Public Lab community collaborate on environmental activism, research, technology design and documentation, as well as community organizing. Originally a Drupal site, it was rewritten in 2012 in Ruby on Rails. The code is organized and structured around inclusive and welcoming community values, as part of our efforts to ensure that historically excluded groups are centered and supported in the crafting of this software project. Audience/accessibility: designed for a general audience, no particular familiarity with web conventions assumed, prioritize very low barrier interaction - low floor and wide walls over high ceiling. Usage, costs, contributor community: The Public Lab website served 543k users in the past 12 months and costs ~$670/month, or ~$8k/year to host. 456 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows:
Key features:
Goals: This codebase is now primarily moving towards feature stability, as highlighted in our Roadmap, but the next big requested features/systems could include:
Maintenance overhead/debt: major drivers of maintenance burden are a deep queue of issues, overall complexity of the codebase, long-term projects like deprecating legacy systems, and feature sprawl, uniqueness and customizability of our platform (pro and con) Sub-libraries
Infragramhttps://github.com/publiclab/infragram Overview: The Infragram project brings together a range of different efforts to make Do-It-Yourself plant health comparisons possible with infrared photography. It makes processing photographs using the NDVI imaging technique into a simple web-based process instead of one which requires less accessible scientific software. This project was made possible with support from Google and the AREN Project at NASA. Audience/accessibility: people with an Infragram-family kit, or interested in viewing images. Classroom use in relation to the NASA AREN project. Wetlands researchers. Which kits use it: Infragram kit family: hacked cameras, Raspberry Pi cameras, webcams Topics: water-quality, agriculture, wetlands Usage, costs, contributor community: ~6k users per year, no cost (due to development of "standalone" edition). ~10 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows:
Key features include:
Goals (requested features / stretch goals):
Maintenance overhead/debt: minimal: needs some webcam API updates. Sub-libraries/satellites:
Image Sequencerhttps://github.com/publiclab/image-sequencer Overview: Image Sequencer is different from other image processing systems because it's non-destructive: instead of modifying the original image, it creates a new image at each step in a sequence. Image Sequencer plays an important utility-level role in various Public Lab tools and kits, but it is also architected from the ground up to be easy to contribute to for newcomers, and has an equivalently high rate of newcomer contribution and overall community size and growth trajectory. Very high retention of volunteer contributors. Audience/accessibility: Educators, students, Infragram/NDVI DIY community, casual users looking for browser or phone-based image processing, NodeJS developers seeking a pure-JavaScript image library, people removing lens distortion from images. Which kits use it: Infragram, Pi camera Topics: same as InfragramUsage, costs, contributor community: Unknown usage as we don't track, and it's a utility library, no hosting cost (purely browser-based). 100+ contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows: Upload an image, select a module and Apply it, repeat for any number of modules, download final image. Drag new images into top of sequence to run the same steps on them. Share the URL to enable other people to use the same sequence. Key features:
Goals (requested features / stretch goals): improved test coverage, design refinements, bugfixes Maintenance overhead/debt: Minimal; lots of progress in the past year or so and we are also prototyping a shared community maintenance structure with rotating/overlapping responsibilities SpectralWorkbenchhttps://github.com/publiclab/spectral-workbench Overview: Spectral Workbench is an open-source tool to perform low-cost spectral analysis and to share those results online. It consists of a Ruby on Rails web application for publishing, archiving, discussing, and analyzing spectra online -- running at https://spectralworkbench.org The core library for analyzing and manipulating spectral data has been spun out into its own self-contained JavaScript module; see below. Audience/accessibility: People using DIY spectrometers (largely from Public Lab kits) for data collection, education, materials comparisons. These tend to be very high familiarity with web systems, but this is likely self-fulfilling as accessibility issues may present a barrier to others. That said, unlike popular platforms like Raspberry Pi or Arduino, it requires no coding to use and is a fully browser-based user interface. Which kits use it: Spectrometry kits, esp Lego spectrometer and Papercraft spectrometer Topics: spectrometry, water-quality, agriculture, air-quality Usage, costs, contributor community: This website served 50k users in the past 12 months, and has helped 20k users to upload and analyze 180k spectra from DIY spectrometers since ~2011. It costs ~$180/month, or ~$2k/year to host. ~30 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. A standalone, browser-only version is in development which could eliminate hosting costs if needed (see spectral-workbench.js below). Basic workflows: Build spectrometer, plug it in via USB cable (or attach to phone with tape), visit SpectralWorkbench.org, click Capture spectra, configure camera, begin recording spectrum. Point at a fluorescent bulb and save, follow calibration sequence. Return to Capture page to use calibrated spectrometer. Clean and process saved spectra, compare spectra by collecting them in a set. Embed them on another site to share. Alternatively: upload saved images of spectra to bypass live capture. Key features:
Goals (requested features / stretch goals):
Maintenance overhead/debt:
Sub-libraries/satellites:
MapKnitterhttps://github.com/publiclab/mapknitter Overview: MapKnitter is a free and open source tool for combining aerial images into a map, or composite image. Informally, we call this "stitching a map" and it's useful if you have many images of overlapping or identical areas, and getting either a web map or a printable map from your photos. Made possible with development funding from Google's Office of Open Source, MapKnitter is now in its 3rd major version, but it dates back to before Public Lab existed and is our longest-running piece of software. The origins of MapKnitter and it's unique design choices is documented in Jeffrey Yoo Warren's master's thesis. Audience/accessibility: Non-GIS specialists who have aerial photos and want to create a flat digital or print map from them. Which kits use it: Balloon mapping, kite mapping, Pole mapping Topics: water-quality, disaster-response, oil-and-gas, agriculture, wetlands Usage, costs, contributor community: This website served 14-19k users per year since 2010, and has helped over 3400 people to make more than 6500 maps . It costs ~$500/month, or ~$6k/year to host. ~80-150 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. A standalone, browser-only version is in development which could eliminate hosting costs if needed (see Leaflet.DistortableImage below). Key features:
Goals (requested features / stretch goals):
Maintenance overhead/debt:
Sub-libraries/satellites:
Leaflet.DistortableImagehttps://github.com/publiclab/mapknitter Overview: A Leaflet library for rubber-sheeting aerial images onto maps; the heart of MapKnitter's interactive tool without the underlying database or image upload and storage. As a self-contained library, it's reusable by other projects and some development cost/capacity is shared with other orgs as a result. Integrated into MapKnitter web application. Audience/accessibility: Developers comfortable with JavaScript; this is a utility for larger mapping applications. Which kits use it: Same as MapKnitter Topics: Same as MapKnitter Usage, costs, contributor community: Shares user base with MapKnitter, no cost, 70+ contributors (subset of MapKnitter) Key features:
Goals (requested features / stretch goals): Better integration/fixes for GPS EXIF tag reading, ability to queue cloud exports without MapKnitter, ability to run offline from an SD card. Maintenance overhead/debt: Minimal. |
Revert | |
0 | warren |
November 24, 2020 20:41
| about 4 years ago
Public Lab's software systems include several complete web applications (PublicLab.org, SpectralWorkbench.org, and MapKnitter.org), as well as smaller stand-alone services (Infragram.org, sequencer.publiclab.org) and a variety of small libraries, utilities, and demos (Leaflet.DistortableImage, PublicLab.Editor, and many more). The central project is PublicLab.org and its "satellite" projects and utilities like the Editor. Others (MapKnitter, Spectral Workbench, Infragram) are in direct support of kits or projects, while many of the remaining projects listed above are lower-level infrastructural or utility projects, ranging from tools for blurring location data for privacy to collecting and organizing map layers, to cloud-based exporting services. Together these websites, tools, and services provide support in many ways and at many levels to the Public Lab community science network, the Public Lab staff, and the Kits initiative. PublicLab.orghttps://github.com/publiclab/plots2 Overview: The content management system for the Public Lab research community, plots2 hosts a collection of forum-like groups of people, posts, and wiki pages, each focused on a topic like water-quality or disaster-response. (Read about the data model here.) It includes a variety of features that help the Public Lab community collaborate on environmental activism, research, technology design and documentation, as well as community organizing. Originally a Drupal site, it was rewritten in 2012 in Ruby on Rails. The code is organized and structured around inclusive and welcoming community values, as part of our efforts to ensure that historically excluded groups are centered and supported in the crafting of this software project. Audience/accessibility: designed for a general audience, no particular familiarity with web conventions assumed, prioritize very low barrier interaction - low floor and wide walls over high ceiling. Usage, costs, contributor community: The Public Lab website served 543k users in the past 12 months and costs ~$670/month, or ~$8k/year to host. 456 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows:
Key features:
Goals: This codebase is now primarily moving towards feature stability, as highlighted in our Roadmap, but the next big requested features/systems could include:
Maintenance overhead/debt: major drivers of maintenance burden are a deep queue of issues, overall complexity of the codebase, long-term projects like deprecating legacy systems, and feature sprawl, uniqueness and customizability of our platform (pro and con) Sub-libraries
Infragramhttps://github.com/publiclab/infragram Overview: The Infragram project brings together a range of different efforts to make Do-It-Yourself plant health comparisons possible with infrared photography. It makes processing photographs using the NDVI imaging technique into a simple web-based process instead of one which requires less accessible scientific software. This project was made possible with support from Google and the AREN Project at NASA. Audience/accessibility: people with an Infragram-family kit, or interested in viewing images. Classroom use in relation to the NASA AREN project. Wetlands researchers. Which kits use it: Infragram kit family: hacked cameras, Raspberry Pi cameras, webcams Topics: water-quality, agriculture, wetlands Usage, costs, contributor community: ~6k users per year, no cost (due to development of "standalone" edition). ~10 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows:
Key features include:
Goals (requested features / stretch goals):
Maintenance overhead/debt: minimal: needs some webcam API updates. Sub-libraries/satellites:
Image Sequencerhttps://github.com/publiclab/image-sequencer Overview: Image Sequencer is different from other image processing systems because it's non-destructive: instead of modifying the original image, it creates a new image at each step in a sequence. Image Sequencer plays an important utility-level role in various Public Lab tools and kits, but it is also architected from the ground up to be easy to contribute to for newcomers, and has an equivalently high rate of newcomer contribution and overall community size and growth trajectory. Very high retention of volunteer contributors. Audience/accessibility: Educators, students, Infragram/NDVI DIY community, casual users looking for browser or phone-based image processing, NodeJS developers seeking a pure-JavaScript image library, people removing lens distortion from images. Which kits use it: Infragram, Pi camera Topics: same as InfragramUsage, costs, contributor community: Unknown usage as we don't track, and it's a utility library, no hosting cost (purely browser-based). 100+ contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. Basic workflows: Upload an image, select a module and Apply it, repeat for any number of modules, download final image. Drag new images into top of sequence to run the same steps on them. Share the URL to enable other people to use the same sequence. Key features:
Goals (requested features / stretch goals): improved test coverage, design refinements, bugfixes Maintenance overhead/debt: Minimal; lots of progress in the past year or so and we are also prototyping a shared community maintenance structure with rotating/overlapping responsibilities SpectralWorkbenchhttps://github.com/publiclab/spectral-workbench Overview: Spectral Workbench is an open-source tool to perform low-cost spectral analysis and to share those results online. It consists of a Ruby on Rails web application for publishing, archiving, discussing, and analyzing spectra online -- running at https://spectralworkbench.org The core library for analyzing and manipulating spectral data has been spun out into its own self-contained JavaScript module; see below. Audience/accessibility: People using DIY spectrometers (largely from Public Lab kits) for data collection, education, materials comparisons. These tend to be very high familiarity with web systems, but this is likely self-fulfilling as accessibility issues may present a barrier to others. That said, unlike popular platforms like Raspberry Pi or Arduino, it requires no coding to use and is a fully browser-based user interface. Which kits use it: Spectrometry kits, esp Lego spectrometer and Papercraft spectrometer Topics: spectrometry, water-quality, agriculture, air-quality Usage, costs, contributor community: This website served 50k users in the past 12 months, and has helped 20k users to upload and analyze 180k spectra from DIY spectrometers since ~2011. It costs ~$180/month, or ~$2k/year to host. ~30 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. A standalone, browser-only version is in development which could eliminate hosting costs if needed (see spectral-workbench.js below). Basic workflows: Build spectrometer, plug it in via USB cable (or attach to phone with tape), visit SpectralWorkbench.org, click Capture spectra, configure camera, begin recording spectrum. Point at a fluorescent bulb and save, follow calibration sequence. Return to Capture page to use calibrated spectrometer. Clean and process saved spectra, compare spectra by collecting them in a set. Embed them on another site to share. Alternatively: upload saved images of spectra to bypass live capture. Key features:
Goals (requested features / stretch goals):
Maintenance overhead/debt:
Sub-libraries/satellites:
MapKnitterhttps://github.com/publiclab/mapknitter Overview: MapKnitter is a free and open source tool for combining aerial images into a map, or composite image. Informally, we call this "stitching a map" and it's useful if you have many images of overlapping or identical areas, and getting either a web map or a printable map from your photos. Made possible with development funding from Google's Office of Open Source, MapKnitter is now in its 3rd major version, but it dates back to before Public Lab existed and is our longest-running piece of software. The origins of MapKnitter and it's unique design choices is documented in Jeffrey Yoo Warren's master's thesis. Audience/accessibility: Non-GIS specialists who have aerial photos and want to create a flat digital or print map from them. Which kits use it: Balloon mapping, kite mapping, Pole mapping Topics: water-quality, disaster-response, oil-and-gas, agriculture, wetlands Usage, costs, contributor community: This website served 14-19k users per year since 2010, and has helped over 3400 people to make more than 6500 maps . It costs ~$500/month, or ~$6k/year to host. ~80-150 contributors from a mix of paid fellows and volunteers have cooperated to build and maintain this software. A standalone, browser-only version is in development which could eliminate hosting costs if needed (see Leaflet.DistortableImage below). Key features:
Goals (requested features / stretch goals):
Maintenance overhead/debt:
Sub-libraries/satellites:
Leaflet.DistortableImagehttps://github.com/publiclab/mapknitter Overview: A Leaflet library for rubber-sheeting aerial images onto maps; the heart of MapKnitter's interactive tool without the underlying database or image upload and storage. As a self-contained library, it's reusable by other projects and some development cost/capacity is shared with other orgs as a result. Integrated into MapKnitter web application. Audience/accessibility: Developers comfortable with JavaScript; this is a utility for larger mapping applications. Which kits use it: Same as MapKnitter Topics: Same as MapKnitter Usage, costs, contributor community: Shares user base with MapKnitter, no cost, 70+ contributors (subset of MapKnitter) Key features:
Goals (requested features / stretch goals): Better integration/fixes for GPS EXIF tag reading, ability to queue cloud exports without MapKnitter, ability to run offline from an SD card. Maintenance overhead/debt: Minimal. |
Revert |