The Public Lab Blog

stories from the Public Lab community

About the blog | Research | Methods

Blurred Location and variable location privacy

by warren with sagarpreet | over 1 year ago | 2 | 2

With increased focus on location privacy in the wake of last year's New York Times report (Your Apps Know Where You Were Last Night, and They're Not Keeping It Secret, image above), we felt this was a good time to talk about some of the systems for storing locations, and some of the work Public Lab has been doing on what we're calling blurred location and a model for variable location privacy. We use both these terms to refer to systems that set out to share or store locations to different degrees of precision.

Clearly there are many reasons for the abuse or misuse of location data. Corporate and government data use must be constrained and responsible. But we are interested in exploring how location data, so useful in coordinating peer-based community strategies, may be used in systems that enable a structural approach to location privacy.

image description

While there is existing work on different aspects of this problem, with the generous support of the Digital Impact Fund, we have set out to implement a prototype system that allows for some location sharing to enable community scientists to coordinate regionally, while not requiring them to share high precision location that might expose them to risk. The keys here are:

  • the ability to share and integrate locations of varying precision using a prototype mapping library
  • an accessible vocabulary to communicate precision
  • a design vocabulary and set of UI/UX norms to respect individual decision-making in relation to location privacy

Together, we aim for these to articulate a model that is simple to use and understand, as well as universal enough---and powerful enough---to be implemented in real-world web applications.

Existing models

As adding location for both people and for research sites on the website became increasingly important for Public Lab's mission, we began looking at how we could store location while offering a means for people to share low-precision (or obfuscated) location. We explored a number of existing options but all had drawbacks, from postal codes, to the "in this area" model used by AirBNB:

image description

One of the biggest problems we saw in general was quick legibility---the ability to know how much precision has been scrubbed, for example, or the ability to perform the "blurring" mentally without an algorithm. Finally, we chose to go with truncation of longitude/latitude values, but to work on a coherent user interface and mental model to guide the translation from different precisions to a meaningful understanding of an "amount" of privacy.

A mental model of location privacy

What we sought was a simple mental model, and we based it around the latitude/longitude grid, known as a graticule in cartographic terms. By using a fixed grid, or a series of fixed grids at different decimal precisions, we avoided the need to insert random data, and we ensured the given truncated coordinates could be used to give a rough sense of the amount of precision offered. (Try it out here)

image description

But most people can't quickly recall how big a coordinate grid square is, and so the interface for choosing one had to be intuitive and visual. We settled on a simple interactive web map using Leaflet, a very popular open source web mapping library. As you pan the map, you see the square overlapping the centerpoint of the map highlighted, indicating your current position at the center, and which grid square you "fall" in.

As you zoom the map in and out, you see the grid squares expanding, and if you zoom past a precision boundary, you'll see a sub-grid appear representing the 100 subdivisions of the larger grid square. Again, the smallest square overlapping the centerpoint is highlighted.

This provides an intuitive interactive means to visualize the region within which your location falls, and the maximum precision someone else will be able to determine your location to. By showing a map, we also remind people that spatial precision offers variable privacy -- in rural areas, a square mile may likely contain just a handful of people, rendering your position quite "findable," especially if it's your house. In urban areas, the same grid square might contain thousands of people.

Conveniently, as we are truncating, unchecking the "blurred location" checkbox simply shows a marker at the centerpoint of the map, and full precision is preserved, making the mixing of high and low precision data relatively simple.


This is only a brief overview of the Leaflet Blurred Location project, and we'll be posting some follow-up blog posts to dig deeper into different challenges and issues this new model and project has involved. And be sure to check out our proposal for a "blurred location" specification, here:

We're interested in tools that can offer people in online spaces the ability to organize, coordinate, and communicate in regional scopes, while placing the decision of how precisely to share location in the hands of those whose privacy is at stake. And we have worked hard to ensure that a clear mental model and user interface make it easy to quickly grasp what's being shared and how much it's being obscured.

Thanks for reading, and we'd love to hear your thoughts as this library continues to develop.


Read more Follow

blog leaflet code privacy

Reporting frac sand mine violations in Wisconsin

by joyofsoy | over 1 year ago | 0 | 2

Last month, I joined Public Lab’s Director of Community Development, Stevie Lewis (@stevie), for a pair of workshops in southeast Wisconsin for people impacted by the frac sand mining industry. Along with local environmental activists Pat Popple (@pat) and Sheila Danielson, we walked community members through the process of reporting violations by the frac sand industry. These materials are collected here for the public.

At the first meeting in Whitehall, we were joined by about 25 community members who shared their experiences as the frac sand mining industry has encroached on their towns. As mines and processing plants moved into the region, residents have been subjected to unbelievable torments: hauling trucks and train cars running all day and night, blasting happening just yards from their properties — cracking foundations and sheetrock, and damaging wells used for drinking water. One family had been without drinking water for over a year because of damage to their well. Another family had radon poisoning because of cracks in their home’s foundation. Community workshop in Whitehall Community workshop in Whitehall

Led by Pat and Stevie, we walked through the types of permit violations that can be reported, the documentation that needs to be collected, and where to report to. Residents worked in groups on sample violations and the feedback was overwhelmingly positive; the reporting process was easier than most people assumed. Much of the information that was shared was compiled from the work done by Public Lab fellow Lemmy Kamau (@kamau19), who researched Wisconsin state policies related to frac sand mining so people can cite specific laws and codes that are violated.

After the event, I spoke with a woman named Diane who shared about the constant torment from a frac sand mine that is within yards of her property. The noise from the sand processing and trucks goes around the clock, less than 50 yards from her home. Stadium lights shine in her windows all night long. She said that the noise is so unbearable and there is so much particulate matter in the air that she doesn’t dare leave her windows open, and she has audiobooks and music playing constantly to help drown out the sound. She also spoke of the effects the industry has had on relationships in town. “People need to understand that if they hear of these things coming to their area, they need to take it seriously,” said Diane. “This has ripped our community apart.”

Later that week, we tagged along with Dr. Crispin Pierce (@crispinpierce) and students Connor Barnes (@Cbarnes9) and Aleah Gmeiner-Anderson (@Aleah) from the University of Wisconsin-Eau Claire as they installed Purple Air monitors at the homes of community members who live near frac sand mines. We watched as they set up these inexpensive sensors and showed residents how to track levels of particulate matter online. Some residents have begun tracking sand mines near them (blasting, transporting, etc.) and lodging them alongside changes in particulate matter captured and published by the Purple Air monitors. Not only is Purple Air data hosted online for residents and Dr. Pierce’s team to see, but the data streams were recently added to the Wisconsin Department of Natural Resources’ website that collects information on air monitoring. Installing Purple Air monitors in the field with (L-R) Aleah Gmeiner-Anderson, Connor Barnes, and Dr. Crispin Pierce (and a kitty named Sprinkles) Installing Purple Air monitors in the field with (L-R) Aleah Gmeiner-Anderson, Connor Barnes, and Dr. Crispin Pierce (and a kitty named Sprinkles who came to help)

That evening, we met with about 45 community members in Black River Falls. The session kicked off with a presentation from Aleah and Connor about their ongoing work with air sensors and particulate matter. We again shared information on how to report violations in the frac sand industry and took questions about nuisance complaints. Community workshop in Black River Falls Community workshop in Black River Falls

At the meeting, I also spoke with Dwight Swenson (@dswenson), an agricultural educator at UW-River Falls in Plant and Earth Science. He and his wife have lived in their home in the town of Curran in Jackson County for about 25 years. It’s an idyllic, peaceful community tucked between rolling hills. “But when the sand mine came in five years ago, the peace was stolen from us,” he says. Mining operations have since decimated the hills outside their living room windows, lights from the plant shine all night long, and lines of trucks rumble past the property. The processing plant uses a million gallons of water per day, but little is known about the wastewater treatment and the effects on the local waterways and drinking water.

Of particular concern is the amount of silica dust in the air. Dwight and his wife, Ruth, have Purple Air monitors installed in their yard and Ruth takes meticulous notes on the readings and weather conditions each day. The data routinely show particulate levels that are well into the danger zone, but little has been done to hold the mining company accountable. “We're relying on local agencies to protect us and they've largely failed us so far,” says Dwight. Tipped off by a community member, he recently responded to a spill of viscous, mustard-colored liquid in a local river. He traced it up a stream that flows near his home, back to the mining site. Officials from the department of natural resources showed up to investigate, but not until days later. “This whole frac sand mining industry is so fraught with peril in terms of sustainability.” says Dwight. “It divides communities. And the economics just isn’t there. They’re not sustainable and they’re not financially viable.” image description Frac sand mine in Curran, WI

Read more Follow

wisconsin air-quality blog fracking

Congratulations to our 2019 Outreachy and Google Summer of Code team!

by warren | over 1 year ago | 2 | 4

This week, we wrapped up our 2019 Outreachy and Google Summer of Code with the largest team of fellows ever -- 15, with two joining via Outreachy and 13 via GSoC. We also had our most successful summer ever, with a huge number of amazing projects and some incredible collaborations.

(above, a picture from an amazing event organized in Jaipur by @divyabaid16 about GSoC and Public Lab's first-timers-only work!)

This past Tuesday, we had an extra-long OpenHour (2-hours, actually) and folks got to give short presentations on their projects.You can watch them here on YouTube!

One thing I noted was that we had much more collaborative work this summer than in the past, with multiple 2-person teams working in close concert with each other, as well as a number of different bigger teams coordinating in parallel and across major integration projects -- MapKnitter being the biggest example of this!

I think this speaks to how we've grown as a community and developed strong cooperative practices! I also wanted to high-five everyone for opening MANY first-timers-only issues, and inviting many newcomers into their projects. It shows great leadership, and was crucial to the success of the summer's projects.

Overall, I was super impressed, and wanted to offer a big CONGRATULATIONS to everyone who participated: students/interns/fellows, mentors, and also all the newcomers who came and joined in on these projects.

Here are everyone's final reports. And again, GREAT WORK!!! 🎉 🎉 🎉 🎉

Title Author Updated Likes Comments
Congratulations to our 2019 Outreachy and Google Summer of Code team! @warren over 1 year ago 2
GSoC Final Report for UI Improvements @gautami_gg over 1 year ago 0
Outreachy Final Blog : An awesome Journey @lekhidugtal over 1 year ago 7
Google Summer of Code 2019 Report @alaxallves over 1 year ago 12
Google Summer of Code 2019 - Final Work Product - Isha Gupta @IshaGupta18 over 1 year ago 18
Introducing Community Toolbox 2.0 @icode365 over 1 year ago 11
GSOC 2019: Final Project Report @aashnaaashna over 1 year ago 1
GSoC'19 with Public Lab @lit2017001 over 1 year ago 2
Google Summer of Code 2019 Final Report @sidntrivedi012 over 1 year ago 3
GSOC 2019 wrapup @vidit over 1 year ago 1
Google Summer of Code 2019: Work Product @namangupta over 1 year ago 1
GSoC19: Mapknitter Rails Upgrade @kaustubh_nair over 1 year ago 2
Google Summer of Code 2019 Public Lab Final Work Product: Pranshu Srivastava @rexagod over 1 year ago 4
Google Summer of Code 2019 Work Product 2019 @namangupta over 1 year ago 1
GSoC 2019: Mapknitter Image Management - Divya Baid @divyabaid16 over 1 year ago 5
Wrapping up Outreachy and GSoC 2019 @warren over 1 year ago 4
SOC 2019: A small proposal for global environmental monitoring @MaggPi almost 2 years ago 13
Show more

Read more Follow

gsoc blog code wwg

Outreachy Final Blog : An awesome Journey

by lekhidugtal | over 1 year ago | 6 | 6

Here in this post I would be summing up my contribution for this summer. We do have this one single link to checkout the whole contribution in project -

What was the aim ?

My project was about revamping the design of various sections pages, sidebar etc. Me and gautamig did it together. We divided an issue of one section into small checklists and get ourselves assigned with those small parts and then starting working on it. We have covered Tags, People,Profile,Individual tags, Questions pages along with sidebar. Along with that, it included various bug-fixing.

What I did and What I learnt ?

The first section we covered in the summer of code was people's section as we had already begin working on the major parts. I started off with my parts which were addition of cards for the list of users which included info and other stuff. #5740. It was great experience with review process and working on responsiveness (@~_@~). After that I moved forward with small fixes of responsiveness. #5754. Then till now, we had a card with details like user info but not tags the user is associated with. So I added in the most recent tags by user on its card #5765. image description image description

Gautami completed her portions and then we went to next section.

Yay !! Done with one section. (✖╭╮✖)

The next Section was Questions section , I created a new shadow page for questions page and added first section which included few info #5787. The idea of shadow thing still looks so COOL !!! (⊙⊙)(☉_☉)(⊙⊙) image description

After that I added featured Question part #5861 for which I took bit of time as it included changes in lots of cells (^_^;). I need to check the whole path of calling and adding a shadow function in back-end for popular questions only. We needed to show two features questions and this was third section for questions part. image description

Yay !! Done with with another one (✖╭╮✖)

Then we went to Individual Section page. I started off with #5903 absolute fixing of wikis page if included for that tag in background and if not then add default grey with the addition of followers to that particular tag. I guess this PR of mine did create lots of bugs and broke many major things. (. _ . )( . _ .)(⌣̩̩́_⌣̩̩̀) image description

Then we went onto to next, I moved forward to as per new design draft changing navs, tabs to dropdowns and vice versa. One of that included distincting between notes questions [#5925] ( I wrote my very first extra-small screenshot test here after checking out the code written by jywarren. (✖╭╮✖) It was of getting redirected to tag page, clicking the button and getting a screenshot of dropdown. image description

This is another design change of side-vertical search results 5851 image description

And then then then, I moved to next part which was actually something major #5948. Its not one or two anymore but changing the design of all the cards with all the info for that particular page. I did this kind of work into parts before. But here i went for all in one go. (︶︿︶) And it also included changing the UI test as per new design. image description image description Woah !! Done with another one (✖╭╮✖)

And Finally we came to profile section. I tried something completely new here. _へ__(‾◡◝ )> I tried building whole profile page in one single go #5990. (︶︿︶) No taking small cases anymore. It was long review process with a lot of requested changes. As it was building up whole section in one PR , so lots of bugs and problems were there (~ _ ~;). And finally after 26 days, It was merged :'). Hurray !! ♪ image description image description image description


Me and Gautami tried to do various portions altogether. As the portions were dependent on each other and we had to wait for some parts. till that time, I went for sidebar. It was addition of toggle icons 😄 #6011, We can't leave our sidebar out when all his siblings sections are upgrading with new designs ¯(°_o)/¯ image description

Ohk !! trying to build profile page in one go left some features (⌣̩̩́_⌣̩̩̀) and bugs. Then addition of some buttons and info required as per new design #6079. And after that addition of popular tags by that user to be shown on its profile section was added #6120.

I did few small bug-fixes of bootstrap upgrades : 5755,5756, #5767, 5772 (˘⌣˘ )

Also, few of the bug-fixing because of the new designs - 5766

And more than that, I somehow created lots of bugs ¯(° _ o)/¯, And thus created many first-timer and other bug issues for others to get them fixed. (҂⌣̀ _ ⌣́)

First-timers are: First-timer only issues link

Otherwise, we have lot more issues - Click to see issues

And some of the recent PRs which are still under revewing process (・_・;) - #6103 One of them is fixing the mismatch working of subscribe button as earlier we were subscribing to related tags but not that particular tags. And having dropdown for related tag. And if a user is subscribed, then we should have post option. image description

#6217 And another is addition of all the extra info of questions,notes,wiki to sidebar into ... image description image description

What is left

So Right now, we have one main section left which is Dashbaord. I'll keep on contributing. So My next target is dashboard now. (@~_@~).

I had an awesome collaboration with Gautami. Special shoutout to @warren for being such a patient mentor.(ø_ø) Thanks to mentors for solving and answering the silly questions I asked.

And Thanks to PublicLab for being such a wonderful community.

I guess I did miss various openhour calls sessions and was not much of active speaker if attended. (˘_˘٥)

I'll keep on contributing to PublicLab in future too. Thanks !!

Read more Follow

design blog barnstar:basic blog-submission

Bringing Public Lab’s multispectral image processing to Leaflet maps

by warren | over 1 year ago | 2 | 2

For a few years now, Public Lab's open hardware community has been developing not only DIY tools for taking multispectral photos, but also software tools to process and analyze these photos---the Infragram project, and more recently the Image Sequencer project. These have enabled many people to take multispectral (near infrared/visible) imagery and do NDVI plant health analysis at home, on a shoestring budget.image description

Above, converting a Canon A480 to take multispectral photos: (@chernabog)

Now we've released a standard Leaflet plugin, called Leaflet.Multispectral to make it possible to do image processing of multispectral imagery within a Leaflet map, in pure JavaScript:image description

(This library was made possible in part by NASA's AREN project)

We hope that this library makes it easier to get started for people looking to work with multispectral imagery, whether you're teaching it in a classroom, taking your own aerial multispectral imagery, or making use of NASA's amazing imagery resources.

The online demo demonstrates how you can use different colormaps, processing algorithms, and so forth, with your image overlay.image description

(Note I haven't aligned the above images at all, so they're just floating. Sorry!)

Learn about multi-band imagery and some of it's uses at this great blog post by Charlie Lloyd of Mapbox:

To get started, you can find some sources of multispectral Landsat 8 data here:

While this library is intended for NRG or near infrared images used as overlays, we have more plans for this technique---coming soon... Leaflet.TileFilter -- a project to apply the same principles to full map tile layers!

Read more Follow

ndvi multispectral nasa infragram

Community Atlas: an "around the world collaboration" on MapKnitter

by warren | over 1 year ago | 4 | 7

Over the past six months, we've overhauled almost every part of the MapKnitter website, and I wanted to share a bit about all the people who made this possible. Between our Google-funded MapKnitter code fellowships and our Google Summer of Code (#GSoC) fellows, we've had contributions from five continents and more than ten people, all coming together to build this complex system!

In March, we put out a call for Mapping Fellows to help lead mapping events in their communities and give feedback on their experiences using to stitch together their aerial images. We partnered with Mo, who worked with youth asylum seekers and refugees to do balloon mapping in their new home in Nottingham. We also partnered with Sairam, who worked with community members in Bangalore to map local waste sites and analyze optimum sites for installing solar panels. Mo and Sairam provided detailed user interface feedback on MapKnitter's design, from the overall workflow to specific organization and styling of buttons and tabs. See for example this annotated screenshot, which we are using to refine the UI:

image description

Meanwhile, Cess Wairimu in Nairobi and our GSoC fellows Alax Alves in Brasília and Kaustubh Nair in Bangalore were hard at work tearing out and rebuilding the Ruby on Rails foundation of the application, upgrading it and cleaning up old code. Much of the code hadn't been touched in years, and things really got refreshed, restructured, and brought up to date.

image description

But the changes weren't only under the hood. Divya Baid of Jaipur was hard at work rebuilding image management, finding bugs and more, while our Providence-based coding fellow Rose Parker was going through, testing and resolving dependencies, one by one. GSoC alum and mentor Sidharth Bansal redesigned and launched a slick new login system that eliminated may unnecessary steps, while Sasha Boginsky of New York (also a mentor) took on dozens of bugs, UI issues, and new features in our map stitching JavaScript library, Leaflet.DistortableImage.

Meanwhile, Varun Gupta (a GSoC alum) in New Delhi and Sebastian Silva (our sysadmin) in Madre de Dios, Peru worked hard on a cloud-based exporting system to offload heavy image-processing jobs to a cluster in Google Cloud, implementing both Node.js and Ruby workflows, and linking MapKnitter to our new image-processing library, Image Sequencer.

image description

Stéfanni Brasil (a former Rails Girls Summer of Code fellow) joined in from Vancouver and brought our UI up to Bootstrap version 4, while Cess stepped in again to build on Stefanni's work in launching a new front page design that highlights mappers' work from around the world.

Finally, hard work by Ananya Arun in Hyderabad and Sagarpreet Chadha in New Delhi has made the new "tour" feature possible, highlighting MapKnitter maps around the world.

image description

It's been an amazing journey, and there's still a lot left to do through the end of the summer. But the launch this week of MapKnitter 3.0 (bigger announcement coming soon!) proved how input from so many folks can make for a really fantastic and cohesive project! It also shows the geographic breadth of the Google Summer of Code, Outreachy, and Public Lab communities!

Thanks to everyone who's helped make this possible, from fellows to students to mentors, as well as the Outreachy program and the Google Open Source office. We're looking forward to a new wave of mapmakers on this fabulous rebooted project, and the many Community Atlases they'll go on to create!

Read more Follow

balloon-mapping mapknitter collaboration software