Satellite Imagery comes to SkyTruth Alerts

Given SkyTruth’s mission of using the view from space to motivate people to protect the environment, it was only a matter of time before satellite imagery would find its way into our Alerts application. With 2019 comes the ability to visually check out what’s taking place in your areas of interest (AOIs), all inside the same application that notifies you about environmental events in those areas.

Newly available imagery in Alerts comes from Sentinel-2 satellites, an Earth observation mission from the European Union’s Copernicus Program. Copernicus systematically acquires optical imagery at high spatial resolution (10 to 60 meters) over land and coastal waters, with new images available about every five days in many areas.

What you can see with 10 meter resolution imagery

The 10m resolution images from Sentinel 2 satellites should work well if you’re searching for new roads, expansion of large disturbance areas, or changes in natural boundaries. But you’ll be disappointed if you’re trying to identify tree cover or the type of vehicle that’s parked in your driveway.

In a 10m resolution image, one pixel represents a 10 meter by 10 meter area, so objects will need to be considerably larger than that for any detail to be discernible.

Here are two 10m images over a gas drilling site in Pennsylvania, taken one year apart.


Viewing satellite imagery inside SkyTruth Alerts

Most new features in Alerts require you to login. From, click on the  LOGIN  link in the header and follow the instructions. First time users will need to register for a new account.

NOTE: If you used our original Alerts, you’ll still need to register for an account the first time. Just remember to use the same email that you used to subscribe to AOIs in the original Alerts.


2. Identify the Area of Interest (AOI)

Start by clicking on the My Areas tab.

If you’ve already subscribed to an AOI, you can easily select it by clicking on its thumbnail.

Or, you can start a new AOI by clicking “Explore a New Area”.


3. Click the Sentinel Imagery checkbox.


4. Select your image date


  • Feel free to adjust the cloud cover or enter a date range, then click Filter to change the images that are available.
  • You can remove the alerts markers by, 1) Clicking the Alerts tab, 2) checking/unchecking the alerts you want on the map, 3) Clicking the My Areas tab to return the AOI controls.
  • If you like the AOI you’ve created, don’t forget to click Add this AOI to my list.
  • Use cloud cover percentage as a guidance. This represents the larger satellite image, which may cover substantially more area than your AOI. So it’s possible to have a low percentage of cloud cover and still have your AOI covered mostly by clouds.
  • You can add highways, towns, etc., to your image by clicking the Show Labels checkbox.

What’s next with Alerts and imagery

The true color images shown throughout this post are just part of what’s possible with satellite imagery. In addition to the red, green and blue bands that give images their true color appearance, most satellites catch additional bands that can include near-infrared, mid-infrared, far-infrared and thermal-infrared. Identifying landscape patterns and features using combinations of these spectral bands starts with additional processing by various data enhancement techniques, and is often followed by some type of classification algorithm to help understand what each feature or pattern represents. Doing this work is one of the challenges faced by SkyTruth Geospatial Analysts and other scientists around the world.

What do you think?

We’d like to know what you think about the addition of Sentinel-2 satellite images to the Alerts system: Will you use this new feature? What does it help you do? How does it fall short? We’re working to make continual improvements to Alerts and we’d love to hear from you! Send us an email at at

Monitoring the tailings dam failure of the Córrego do Feijão mine

On Friday, January 25th, the tailings dam to the Córrego do Feijão mine burst near Brumadinho, State of Minas Gerais, Brazil (the moment of failure was captured on video). Operated by Brazilian mining company Vale S.A., this incident recalls the collapse of Vale’s Samarco Mine in 2015 which unleashed 62 million cubic meters of toxic sludge downstream. As of Monday, the death toll reached 120, however, the full extent of damage is unknown. To monitor the impact, here is a Sentinel-2 scene of Córrego do Feijão from eighteen days before and seven days after the dam’s failure. As of February 2nd, approximately 2.85 km2 of sludge surrounds the region.

Sentinel 2 scene showing the extent of flooding as a result of the tailings dam failure. As a result of the failure, 3 billion gallons of mining waste were spilled.

This slider, below, shows the area near the town of Brumadinho before and after the dam failure with the inundation highlighted in yellow, it can be accessed here.

From Trial to Triumph: Learning to Code at SkyTruth

When I was brought on to intern at SkyTruth, I was presented by one of our analysts, Ry Covington, with a rather open-ended challenge: “Here at SkyTruth, we want our internships to be a learning experience first and foremost. With that said, you can learn almost anything you want while working here. Think about your main goals, what you hope to get out of these next few months and let me know so that we can decide together how best to help you achieve your goal.” This isn’t verbatim, but it hits the mark in regards to the message he was conveying. I already knew the answer to this question, because it was something that I had thought about even before I started at SkyTruth: I had a strong desire to learn programming, especially as it pertains to the field of geospatial analysis. Now mind you, this is coming from someone who is brand new to programming in any respect. I had one class in C++ my sophomore year of college and all of that information has since slipped my mind, as most unimportant (or at least I regarded it as unimportant at the time) college course material does. I also had attempted to teach myself Python the summer before I started at SkyTruth while rehabilitating a nasty toe fracture, but that information didn’t quite encapsulate what I hoped to achieve with coding. I only knew the foundational pieces of what it means to communicate with a computer through coding, such as iterators, variables, and Boolean operators.

Around a month or so into the internship I received my opportunity to work towards my goal. Ry had a project he was doing with the Heinz Foundation that involved creating a map which detailed potential well pad sites in Allegheny County, PA (to see my blog post detailing the final results of this study, follow this link). We worked out a research approach and came up with a plan to map out these locations that seemed logical to both of us. Great. Now here’s an idea: let’s take all of those things that we want to incorporate into this project and write that into a Google Earth Engine (EE) script. On top of that, let’s also publish an app which uses this same Earth Engine script. These suggestions made by Ry seemed fine and well, until the moment where he delegated the task of writing this script unto me. In his words, “It’s a steep learning curve, but you’re a smart guy. You’ll figure it out!” He left the room as he was making this statement, leaving me stunned like a deer in headlights. Yes I wanted to learn to program, but this seemed excessive! After a few moments of processing, I collected myself and turned to the most trustworthy source of them all for guidance: Google Search. Looking up “Google Earth Engine tutorial” led me to a website which detailed the functions which you can use to make neat little UI plugins in your EE code. After a day of playing with them and applying some of the sample code they offered, I figured out how to display the elements of interest on the map. Following this discovery, I excitedly called to Ry to come and look at what I had made. He took one look at what I had done and said, “Good job Brendan, that’s an excellent start. Keep going.” Wait, this wasn’t what I was trying to get? It was an excellent start, which meant I was nowhere near the end. So it was time to expand my search for information.

An example of the guides found on Google’s official Earth Engine site.

At Ry’s suggestion, I looked at the code that one of SkyTruth’s other analysts, Christian Thomas, had written in EE for global ocean monitoring. This turned out to be an invaluable source of information for me but it was intimidating at first glance. The script itself is composed of over 500 lines of intensely in-depth code that made no sense to me whatsoever. On more than one occasion, I found myself becoming lost in the script’s intricacies while trying to find answers to my own predicament. Nevertheless, I remained determined to figure out how to compose my script, so I proceeded forward with the examples Christian’s code offered me. My program would involve creating a panel on which I’d load on a few buttons with different unique functions that built off of each other to display different text and layers on the panel and the map, respectively. Needless to say, my first few stabs at all of this led me to fall flat on my face. I could create the buttons that I wanted, but I couldn’t for the life of me figure out how to put the buttons on the side panel that I’d made. I spent roughly two weeks trying to get over this hurdle.

It was nice to have the encouragement of my mentors to keep me motivated to seek the answer to this question. Without Christian and Ry’s calm demeanors and calculated approach to solving these programming issues, I probably would’ve lost hope quickly. Days of work would go by and I’d spend a lot of time carefully combing through my code trying to discover the answer to my plight. Even when I was at home at night, I’d think about ways I could get to the result I desired. Then one day, all at once, it hit me. It was like the roadblock in my mind was slammed into by a Mack truck and just like that I figured out how to get the buttons to display on the side panel. To describe the feeling as a whole is difficult, but I think I could compare it to the way I felt as a little kid on Christmas morning when I rushed down the stairs and saw presents underneath the Christmas tree. I jumped up out of my seat, did some silent yelling, and added in a few fist pumps for good measure. I was elated! The cool part about it was that once I broke through that wall, it was like the rest came naturally. My fingers fluttered across my keyboard as I coded exactly what I had in mind for this project. Before I knew it I had an EE script that was logical and effective. I remember when Ry and Christian first looked at my latest script and they had nothing but good things to say about what I had accomplished. That positivity made me feel great; it was a huge payoff after a great deal of tribulation. I had finally done it!

A screenshot from my finished app.

Now that I reflect on the path I followed to create this code, I’m astounded by how much I learned. I learned more in those few chaotic weeks than I would typically learn over the course of a semester long college course! It was a chaos that you can’t quite replicate in the classroom because there aren’t people depending on you when you’re doing homework or taking a test. The urgency to make your product the finest ever conceived is palpable. You do the best that you can for your coworkers, who end up being more like your friends here at SkyTruth. I think that hits the nail on the head when considering the mission of SkyTruth overall; we’re all here to provide information for others so that they can do meaningful work in defending our precious environment. Every task you work on here could have an effect on your world, so you do everything you can to give every project your all. I definitely got way more than I bargained for when I said that I wanted to learn to program at SkyTruth. Despite that, I couldn’t be more satisfied with the work I was able to do over my first few months here.

If you would like to view my completed app, please click here!

Mapping potential “drill out” scenarios in Allegheny County, Pennsylvania

SkyTruth has just launched its first Google Earth Engine app, detailing potential natural gas drilling scenarios in Allegheny County, Pennsylvania.  If you’re interested, you can view the app here.

Hydraulic fracturing — fracking — has unlocked natural gas resources from formations like the Utica Shale and Marcellus Shale, resulting in an explosion of gas-drilling activity across the Mid-Atlantic states. One of the states sitting above this hot commodity is Pennsylvania; the state boasts a massive reserve of nearly 89.5 trillion cubic feet of dry natural gas, according to the US Energy Information Administration.  In the thick of it all, Allegheny County, in the southwestern portion of the state, is one of the few counties where drilling activity has been relatively light. The county’s main defense against well drilling has been zoning regulations which require a “setback” between unconventional natural gas drilling sites and “occupied buildings.”  At present, the minimum distance required between a well pad and a building is 500 feet (unless consent has been received by the building’s owner). However, this distance may not adequately protect human health, especially in communities surrounded by drilling. Municipal officials might want to consider alternative setbacks, based on the latest scientific research on the impacts of drilling on the health of nearby residents.  This analysis evaluates a range of setback scenarios, and illustrates the likely drilling density and distribution of drilling sites across the county for each scenario.

To better understand the potential impact of drilling in Allegheny County, I analyzed several different “drill out” scenarios (Figure 1).  I developed our first Google Earth Engine app to give users a glimpse of how different setback distances and different well spacing intervals might impact the number of homes at risk from drilling impacts in the future.  Check out the analysis here.

Figure 1. A screenshot of the app when first launched.

To begin this analysis, I downloaded building footprint data for Allegheny County from the Pennsylvania Geospatial Data Clearinghouse.  Next, I downloaded shapefiles representing the centerlines of major rivers passing through the county, other hydrological features in Allegheny County, and county-owned roads from the Allegheny County GIS Open Data Portal. I also downloaded a TIGER shapefile representing Allegheny County’s Major Highways as of 2014, courtesy of the US Census Bureau. Setback distances of 500 feet, 1,000 feet, 1,500 feet, and 2,500 feet were used to buffer the center points of “occupied buildings” in the county. I selected the minimum and maximum setback distances based upon the current Pennsylvania setback laws (500 ft.) and a recently proposed and defeated setback distance from Colorado (2,500 ft.). The latter regulation, if passed, would have been the most restrictive regulation on fracking of any state.  The 1,000 and 1,500 foot setbacks are meant to serve as intervals between these two demonstrated extremes of zoning regulation. I also created buffers around rivers and streams as well as roads. I applied a 300 foot buffer to the centerlines of all rivers and streams in the county (based upon the current regulations). I also applied a 328 foot buffer to all major highways and a 40 foot buffer to all county roads. These three buffer zones remained constant throughout the project.  

After applying these buffer distances to rivers, roads, and buildings, I calculated how many acres of Allegheny County were potentially open to drilling.  Using the currently required distance of 500 feet, there are approximately 53,000 acres potentially available for drilling in Allegheny County, PA (See Figure 2).  

Figure 2: Screenshot from the app showing the available drilling area in Allegheny County (shown in grey) when considering the 500-foot setback from occupied structures.  Current well pad locations are denoted by red points on the map.

Using the setback distances that we identified (e.g., 500 feet, 1,000 feet, 1,500 feet, 2,500 feet), I wanted to visualize what different potential “drill out” scenarios might look like.  To do that, I had to decide how much space to leave between potential well sites. I chose to space out the potential drilling sites according to three different intervals: 40 acres per well, 80 acres per well, and 640 acres per well.  Calculating different setback distances and different spacing intervals allowed me to investigate the range of possible “drill out” in Allegheny County.  I calculated the number of new drilling sites that each “drill out” scenario could potentially support. I’ve summarized the results below:

40 acre well spacing80 acres well spacing640 acre well spacing
500 ft. setback92846552
1,000 ft. setback25715614
1,500 ft. setback84488
2,500 ft. setback18103

So, for example, a setback distance of 500 feet coupled with a spacing between well pads of 40 acres would allow for 928 new potential drilling locations.  Taking into consideration the approximate 3-5 acre area required for the development of a well pad, this suggests that 2,700-4,600 acres of land in Allegheny County could be subjected to surface well development.

For each “drill out” scenario, I mapped the number of potentially supported wells, and I put a two-mile buffer around each point to simulate the potential zone of adverse health impacts (See Figure 3).  I used the buffered points to calculate the number of “occupied structures” that would be at risk of exposure if a drilling site was built. The number of occupied structures at risk when considering each of the different scenarios is summarized in the table below:

40 acre well spacing80 acre well spacing640 acre well spacing
500 ft. setback446,901380,284194,053
1,000 ft. setback222,481215,41543,256
1,500 ft. setback90,04660,91926,722
2,500 ft. setback4,8164,5243,626
Figure 3. Screenshot from the app showing potential drill-out locations (shown in yellow), considering a 500-ft setback from occupied structures and a separation between potential drilling operations of 40 acres. Notice the area of the county potentially subjected to adverse health consequences considering a two-mile buffer zone (shown in black) around each of these locations.

Setback distances can be an important tool for municipal governments looking to reign in drilling to protect the health, safety, and quality of life of local residents.  My analysis demonstrates how setback distances can help protect the public from the adverse impacts of oil and gas drilling in Allegheny County, Pennsylvania. Please be sure to check out the app here.  

Possible Bilge-dumping Offshore Indonesia

Near the northern tip of Indonesia’s Bangka Belitung Islands (located directly below the yellow box within the inset map of image 1), I spotted a slick that resembles clock hands pointing to the hours 4 and 11. Captured by radar satellite, Sentinel-1, on the evening of January 8, 2019 (22:40 GMT), the slick stretches at least 117 kilometers. Due to the slick’s narrowness and distinct sharp turn in track, it is likely a bilge dump. To the right, the slick trails beyond the edge of available imagery. Though we cannot see the responsible vessel on this image, the sharp linear impression of the slick indicates that it probably passed through the area within 24 hours of the scene’s capture.

Image 1. Sentinel-1 scene of slick approximately 50 km north of Bangka Belitung Islands. See text for explanation.

SkyTruth analyst Bjorn Bergman verified this presumption. To look for similarities in timing and trajectory, Bergman used ExactEarth’s ShipView, a web-based platform that provides access to automatic identification system broadcasts (a global vessel tracking system commonly abbreviated to ‘AIS’), and identified the Indonesian crude oil tanker GAMSUNORO as a possible source.

Image 2. ExactEarth ShipView displaying AIS signal of tanker GAMSUNORO.
Credit: Includes material © 2019 exactEarth Ltd. All Rights Reserved.

Image 3 juxtaposes the slick and GAMSUNORO’s AIS signal. Traversing southeast, the ship’s first signal was recorded at 12:59 GMT. Close to 14:00 GMT, the vessel encountered the area with the slick. From this information, we know the tanker’s predicted track occurred approximately 8 ½ hours before the scene was captured. In addition, the vessel’s path imitates the shape of the slick. However, the ship’s track is slightly displaced to the northeast. It is possible that the slick may have drifted due to steady winds blowing from the NE (~6-13 knots) at least seven hours prior to the image’s capture. There appears to be a strong correlation in the temporal and spatial attributes of slick and ship, indicating that the GAMSUNORO is a likely source. To corroborate our findings, we followed the ship as it sailed southbound.

Image 3. GAMSUNORO’s AIS signal superimposed onto the Sentinel-1 scene

Initially, we anticipated the ship would journey to Jakarta; however, image 2 displays the vessel’s latest position (January 14, 2019 at 10:55 GMT) anchored about 6 miles offshore near the town of Indramayu. With an updated version of the vessel’s track, we may be able to find evidence of a continued slick either on their way south or at their current anchorage. Whether or not we are able to positively ID the perpetrator, this is one of many examples displaying the temporal challenges of using satellite imagery to capture not just illegal activity but any short-lived phenomena.