mirror of
https://github.com/bellingcat/RS4OSINT.git
synced 2026-06-07 19:18:36 +03:00
pre-python caption fixing
This commit is contained in:
15
F1.qmd
15
F1.qmd
@@ -203,6 +203,9 @@ This chapter introduced the Earth Engine API. You also learned the basics of Jav
|
||||
|
||||
# Exploring Images
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
Jeff Howarth
|
||||
@@ -222,6 +225,7 @@ Satellite images are at the heart of Google Earth Engine’s power. This chapter
|
||||
## Assumes you know how to: {.unlisted .unnumbered}
|
||||
|
||||
* Sign up for an Earth Engine account, open the Code Editor, and save your script (Chap. F1.0).
|
||||
:::
|
||||
|
||||
## Accessing an Image
|
||||
|
||||
@@ -464,6 +468,9 @@ In this chapter, we looked at how an image is composed of one or more bands, whe
|
||||
|
||||
The previous chapter introduced you to images, one of the core building blocks of remotely sensed imagery in Earth Engine. In this chapter, we will expand on this concept of images by introducing image collections. Image collections in Earth Engine organize many different images into one larger data storage structure. Image collections include information about the location, date collected, and other properties of each image, allowing you to sift through the ImageCollection for the exact image characteristics needed for your analysis.
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Authors {.unlisted .unnumbered}
|
||||
|
||||
Andréa Puzzi Nicolau, Karen Dyson, David Saah, Nicholas Clinton
|
||||
@@ -484,6 +491,8 @@ The purpose of this chapter is to introduce you to the many types of collections
|
||||
* Locate the Earth Engine Inspector and Console tabs and understand their purposes (Chap. F1.0).
|
||||
* Use the Inspector tab to assess pixel values (Chap. F1.1).
|
||||
|
||||
:::
|
||||
|
||||
## Image Collections: An Organized Set of Images
|
||||
|
||||
There are many different types of image collections available in Earth Engine. These include collections of individual satellite images, pre-made composites that combine multiple images into one blended image, classified LULC maps, weather data, and other non-optical data sets. Each one of these is useful for different types of analyses. For example, one recent study examined the drivers of wildfires in Australia (Sulova and Jokar 2021). The research team used the European Center for Medium-Range Weather Forecast Reanalysis (ERA5) dataset produced by the European Center for Medium-Range Weather Forecasts (ECMWF) and is freely available in Earth Engine. We will look at this dataset later in the chapter.
|
||||
@@ -828,7 +837,9 @@ Sulova A, Arsanjani JJ (2021) Exploratory analysis of driving force of wildfires
|
||||
|
||||
# The Remote Sensing Vocabulary
|
||||
|
||||
* * *
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Authors {.unlisted .unnumbered}
|
||||
|
||||
Karen Dyson, Andréa Puzzi Nicolau, David Saah, Nicholas Clinton
|
||||
@@ -847,7 +858,7 @@ The purpose of this chapter is to introduce some of the principal characteristic
|
||||
* Navigate among Earth Engine result tabs (Chap. F1.0).
|
||||
* Visualize images with a variety of false-color band combinations (Chap. F1.1).
|
||||
|
||||
* * *
|
||||
:::
|
||||
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
33
F2.qmd
33
F2.qmd
@@ -8,9 +8,13 @@ Now that you know how images are viewed and what kinds of images exist in Earth
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
Karen Dyson, Andréa Puzzi Nicolau, David Saah, and Nicholas Clinton
|
||||
|
||||
|
||||
@@ -30,8 +34,9 @@ Once images have been identified in Earth Engine, they can be viewed in a wide a
|
||||
|
||||
* Import images and image collections, filter, and visualize (Part F1).
|
||||
|
||||
* * *
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
Spectral indices are based on the fact that different objects and land covers on the Earth’s surface reflect different amounts of light from the Sun at different wavelengths. In the visible part of the spectrum, for example, a healthy green plant reflects a large amount of green light while absorbing blue and red light—which is why it appears green to our eyes. Light also arrives from the Sun at wavelengths outside what the human eye can see, and there are large differences in reflectances between living and nonliving land covers, and between different types of vegetation, both in the visible and outside the visible wavelengths. We visualized this earlier, in Chaps. F1.1 and F1.3 when we mapped color-infrared images (Fig. F2.0.1).
|
||||
|
||||
@@ -398,10 +403,14 @@ Souza Jr CM, Siqueira JV, Sales MH, et al (2013) Ten-year Landsat classification
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Andréa Puzzi Nicolau, Karen Dyson, David Saah, Nicholas Clinton
|
||||
|
||||
|
||||
@@ -426,8 +435,9 @@ Image classification is a fundamental goal of remote sensing. It takes the user
|
||||
* Import images and image collections, filter, and visualize (Part F1).
|
||||
* Understand bands and how to select them (Chap. F1.2, Chap. F2.0).
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
Classification is addressed in a broad range of fields, including mathematics, statistics, data mining, machine learning, and more. For a deeper treatment of classification, interested readers may see some of the following suggestions: Witten et al. (2011), Hastie et al. (2009), Goodfellow et al. (2016), Gareth et al. (2013), Géron (2019), Müller et al. (2016), or Witten et al. (2005). Unlike regression, which predicts continuous variables, classification predicts categorical, or discrete, variables—variables with a finite number of categories (e.g., age range).
|
||||
|
||||
@@ -763,10 +773,14 @@ Witten IH, Frank E, Hall MA, et al (2005) Practical machine learning tools and t
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Andréa Puzzi Nicolau, Karen Dyson, David Saah, Nicholas Clinton
|
||||
|
||||
|
||||
@@ -790,8 +804,9 @@ This chapter will enable you to assess the accuracy of an image classification.
|
||||
* Create a graph using ui.Chart (Chap. F1.3).
|
||||
* Perform a supervised Random Forest image classification (Chap. F2.1).
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
Any map or remotely sensed product is a generalization or model that will have inherent errors. Products derived from remotely sensed data used for scientific purposes and policymaking require a quantitative measure of accuracy to strengthen the confidence in the information generated (Foody 2002, Strahler et al. 2006, Olofsson et al. 2014). Accuracy assessment is a crucial part of any classification project, as it measures the degree to which the classification agrees with another data source that is considered to be accurate, ground-truth data (i.e., “reality”).
|
||||
|
||||
|
||||
100
F4.qmd
100
F4.qmd
@@ -4,10 +4,14 @@ One of the paradigm-changing features of Earth Engine is the ability to access d
|
||||
|
||||
# Filter, Map, Reduce
|
||||
|
||||
* * *
|
||||
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
Jeffrey A. Cardille
|
||||
|
||||
## Overview {.unlisted .unnumbered}
|
||||
@@ -29,8 +33,9 @@ The purpose of this chapter is to teach you important programming concepts as th
|
||||
* Import images and image collections, filter, and visualize (Part F1).
|
||||
* Perform basic image analysis: select bands, compute indices, create masks (Part F2).
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
Prior chapters focused on exploring individual images—for example, viewing the characteristics of single satellite images by displaying different combinations of bands (Chap. F1.1), viewing single images from different datasets (Chap. F1.2, Chap. F1.3), and exploring image processing principles (Parts F2, F3) as they are implemented for cloud-based remote sensing in Earth Engine. Each image encountered in those chapters was pulled from a larger assemblage of images taken from the same sensor. The chapters used a few ways to narrow down the number of images in order to view just one for inspection (Part F1) or manipulation (Part F2, Part F3).
|
||||
|
||||
@@ -233,10 +238,14 @@ In this chapter, you learned about the paradigm of filter, map, reduce. You lea
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Gennadii Donchyts
|
||||
|
||||
|
||||
@@ -434,10 +443,14 @@ Wilson AM, Jetz W (2016) Remotely sensed high-resolution global cloud dynamics f
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Ujaval Gandhi
|
||||
|
||||
|
||||
@@ -469,8 +482,9 @@ This chapter will cover the techniques for aggregating individual images from a
|
||||
* Summarize an ImageCollection with reducers (Chap. F4.0, Chap. F4.1).
|
||||
* Inspect an Image and an ImageCollection, as well as their properties (Chap. F4.1).
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
CHIRPS is a high-resolution global gridded rainfall dataset that combines satellite-measured precipitation with ground station data in a consistent, long time-series dataset. The data are provided by the University of California, Santa Barbara, and are available from 1981 to the present. This dataset is extremely useful in drought monitoring and assessing global environmental change over land. The satellite data are calibrated with ground station observations to create the final product.
|
||||
|
||||
@@ -654,8 +668,12 @@ Okamoto K, Ushio T, Iguchi T, et al (2005) The global satellite mapping of preci
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
:
|
||||
|
||||
Txomin Hermosilla, Saverio Francini, Andréa P. Nicolau, Michael A. Wulder, Joanne C. White, Nicholas C. Coops, Gherardo Chirici
|
||||
@@ -685,8 +703,9 @@ The purpose of this chapter is to provide necessary context and demonstrate di
|
||||
* Write a function and map it over an ImageCollection (Chap. F4.0).
|
||||
* Summarize an ImageCollection with reducers (Chap. F4.0, Chap. F4.1).
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
In many respects, satellite remote sensing is an ideal source of data for monitoring large or remote regions. However, cloud cover is one of the most common limitations of optical sensors in providing continuous time series of data for surface mapping and monitoring. This is particularly relevant in tropical, polar, mountainous, and high-latitude areas, where clouds are often present. Many studies have addressed the extent to which cloudiness can restrict the monitoring of various regions (Zhu and Woodcock 2012, 2014; Eberhardt et al. 2016; Martins et al. 2018).
|
||||
|
||||
@@ -1048,10 +1067,14 @@ Zhu Z, Woodcock CE (2012) Object-based cloud and cloud shadow detection in Lands
|
||||
# Change Detection
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Karis Tenneson, John Dilger, Crystal Wespestad, Brian Zutta, Andréa P Nicolau, Karen Dyson, Paula Paz
|
||||
|
||||
|
||||
@@ -1075,8 +1098,9 @@ This chapter introduces change detection mapping. It will teach you how to make
|
||||
* Import images and image collections, filter, and visualize (Part F1).
|
||||
* Perform basic image analysis: select bands, compute indices, create masks (Part F2).
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
Change detection is the process of assessing how landscape conditions are changing by looking at differences in images acquired at different times. This can be used to quantify changes in forest cover—such as those following a volcanic eruption, logging activity, or wildfire—or when crops are harvested (Fig. F4.4.1). For example, using time-series change detection methods, Hansen et al. (2013) quantified annual changes in forest loss and regrowth. Change detection mapping is important for observing, monitoring, and quantifying changes in landscapes over time. Key questions that can be answered using these techniques include identifying whether a change has occurred, measuring the area or the spatial extent of the region undergoing change, characterizing the nature of the change, and measuring the pattern (configuration or composition) of the change (MacLeod and Congalton 1998).
|
||||
|
||||
@@ -1290,10 +1314,14 @@ Woodcock CE, Loveland TR, Herold M, Bauer ME (2020) Transitioning from change de
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Robert Kennedy, Justin Braaten, Peter Clary
|
||||
|
||||
|
||||
@@ -1317,8 +1345,9 @@ Time-series analysis of change can be achieved by fitting the entire spectral tr
|
||||
* Calculate and interpret vegetation indices (Chap. F2.0)
|
||||
* Interpret bands and indices in terms of land surface characteristics (Chap. F2.0).
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
Land surface change happens all the time, and satellite sensors witness it. If a spectral index is chosen to match the type of change being sought, surface change can be inferred from changes in spectral index values. Over time, the progression of spectral values witnessed in each pixel tells a story of the processes of change, such as growth and disturbance. Time-series algorithms are designed to leverage many observations of spectral values over time to isolate and describe changes of interest, while ignoring uninteresting change or noise.
|
||||
|
||||
@@ -1505,10 +1534,14 @@ Kennedy RE, Yang Z, Gorelick N, et al (2018) Implementation of the LandTrendr al
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Andréa Puzzi Nicolau, Karen Dyson, Biplov Bhandari, David Saah, Nicholas Clinton
|
||||
|
||||
|
||||
@@ -1535,8 +1568,9 @@ The purpose of this chapter is to establish a foundation for time-series analysi
|
||||
* Write a function and map it over an ImageCollection (Chap. F4.0).
|
||||
* Mask cloud, cloud shadow, snow/ice, and other undesired pixels (Chap. F4.3).
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
Many natural and man-made phenomena exhibit important annual, interannual, or longer-term trends that recur—that is, they occur at roughly regular intervals. Examples include seasonality in leaf patterns in deciduous forests and seasonal crop growth patterns. Over time, indices such as the Normalized Difference Vegetation Index (NDVI) will show regular increases (e.g., leaf-on, crop growth) and decreases (e.g., leaf-off, crop senescence), and typically have a long-term, if noisy, trend such as a gradual increase in NDVI value as an area recovers from a disturbance.
|
||||
|
||||
@@ -1889,8 +1923,12 @@ Tang X, Bullock EL, Olofsson P, et al (2019) Near real-time monitoring of tropic
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Paulo Arévalo, Pontus Olofsson
|
||||
@@ -2333,10 +2371,14 @@ Zhu Z, Woodcock CE (2014) Continuous change detection and classification of land
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Jeffrey A. Cardille, Rylan Boothman, Mary Villamor, Elijah Perez, Eidan Willis, Flavie Pelletier
|
||||
|
||||
|
||||
@@ -2361,8 +2403,9 @@ As the ability to rapidly produce classifications of satellite images grows, it
|
||||
* Create a graph using ui.Chart (Chap. F1.3).
|
||||
* Obtain accuracy metrics from classifications (Chap. F2.2).
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
When working with multiple sensors, we are often presented with a challenge: What to do with classification noise? It’s almost impossible to remove all noise from a classification. Given the information contained in a stream of classifications, however, you should be able to use the temporal context to distinguish noise from true changes in the landscape.
|
||||
|
||||
@@ -2707,10 +2750,14 @@ Millard C (2006) The River of Doubt: Theodore Roosevelt’s Darkest Journey. Anc
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Andréa Puzzi Nicolau, Karen Dyson, David Saah, Nicholas Clinton
|
||||
|
||||
|
||||
@@ -2738,8 +2785,9 @@ In this chapter, we will introduce lagged effects to build on previous work in m
|
||||
* Mask cloud, cloud shadow, snow/ice, and other undesired pixels (Chap. F4.3).
|
||||
* Fit linear and nonlinear functions with regression in an ImageCollection time series (Chap. F4.6).
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
While fitting functions to time series allows you to account for seasonality in your models, sometimes the impact of a seasonal event does not impact your dependent variable until the next month, the next year, or even multiple years later. For example, coconuts take 18–24 months to develop from flower to harvestable size. Heavy rains during the flower development stage can severely reduce the number of coconuts that can be harvested months later, with significant negative economic repercussions. These patterns—where events in one time period impact our variable of interest in later time periods—are important to be able to include in our models.
|
||||
|
||||
|
||||
29
F5.qmd
29
F5.qmd
@@ -12,9 +12,13 @@ In addition to raster data processing, Earth Engine supports a rich set of vecto
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
AJ Purdy, Ellen Brock, David Saah
|
||||
|
||||
|
||||
@@ -325,10 +329,14 @@ In this chapter, you learned how to import features into Earth Engine. In Sect.
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Keiko Nomura, Samuel Bowers
|
||||
|
||||
|
||||
@@ -357,8 +365,9 @@ The purpose of this chapter is to review methods of converting between raster an
|
||||
* Write a function and map it over an ImageCollection (Chap. F4.0).
|
||||
* Use reduceRegions to summarize an image in irregular shapes (Chap. F5.0).
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
Raster data consists of regularly spaced pixels arranged into rows and columns, familiar as the format of satellite images. Vector data contains geometry features (i.e., points, lines, and polygons) describing locations and areas. Each data format has its advantages, and both will be encountered as part of GIS operations.
|
||||
|
||||
@@ -951,8 +960,12 @@ In this chapter, you learned how to convert raster to vector and vice versa. Mor
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Sara Winsemius and Justin Braaten
|
||||
@@ -1596,8 +1609,12 @@ Miller JD, Thode AE (2007) Quantifying burn severity in a heterogeneous landscap
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Ujaval Gandhi
|
||||
|
||||
55
F6.qmd
55
F6.qmd
@@ -14,10 +14,14 @@ Although you now know the most basic fundamentals of Earth Engine, there is stil
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Gennadii Donchyts, Fedor Baart
|
||||
|
||||
|
||||
@@ -43,8 +47,9 @@ This chapter should help users of Earth Engine to better understand raster data
|
||||
* Write a function and map it over an ImageCollection (Chap. F4.0).
|
||||
* Inspect an Image and an ImageCollection, as well as their properties (Chap. F4.1).
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
Visualization is the step to transform data into a visual representation. You make a visualization as soon as you add your first layer to your map in Google Earth Engine. Sometimes you just want to have a first look at a dataset during the exploration phase. But as you move towards the dissemination phase, where you want to spread your results, it is good to think about a more structured approach to visualization. A typical workflow for creating visualization consists of the following steps:
|
||||
|
||||
@@ -712,10 +717,14 @@ Wilkinson L (2005) The Grammar of Graphics. Springer Verlag
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Sabrina H. Szeto
|
||||
|
||||
|
||||
@@ -744,8 +753,9 @@ Many users find themselves needing to collaborate with others in Earth Engine at
|
||||
|
||||
* Sign up for an Earth Engine account, open the Code Editor, and save your script (Chap. F1.0).
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
Many people find themselves needing to share a script when they encounter a problem; they wish to share the script with someone else so they can ask a question. When this occurs, sharing a link to the script often suffices. The other person can then make comments or changes before sending a new link to the modified script.
|
||||
|
||||
@@ -1088,10 +1098,14 @@ Donchyts G, Baart F, Braaten J (2019) ee-palettes. https://github.com/gee-commun
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Jillian M. Deines, Stefania Di Tommaso, Nicholas Clinton, Noel Gorelick
|
||||
|
||||
|
||||
@@ -1118,8 +1132,9 @@ Commonly, when Earth Engine users move from tutorials to developing their own pr
|
||||
* Understand distinctions among Image, ImageCollection, Feature and FeatureCollection Earth Engine objects (Part F1, Part F2, Part F5).
|
||||
* Use the require function to load code from existing modules (Chap. F6.1).
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
Parts F1–F5 of this book have covered key remote sensing concepts and demonstrated how to implement them in Earth Engine. Most exercises have used local-scale examples to enhance understanding and complete tasks within a class-length time period. But Earth Engine’s power comes from its scalability—the ability to apply geospatial processing across large areas and many years.
|
||||
|
||||
@@ -1709,10 +1724,14 @@ Wilson G, Bryan J, Cranston K, et al (2017) Good enough practices in scientific
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Qiusheng Wu
|
||||
|
||||
|
||||
@@ -1740,8 +1759,9 @@ The purpose of this chapter is to demonstrate how to design and publish Earth E
|
||||
* Import images and image collections, filter, and visualize (Part F1).
|
||||
* Use the basic functions and logic of Python.
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
Earth Engine has a user interface API that allows users to build and publish interactive web apps directly from the JavaScript Code Editor. Many readers will have encountered a call to ui.Chart in other chapters, but much more interface functionality is available. In particular, users can utilize the ui functions to construct an entire graphical user interface (GUI) for their Earth Engine script. The GUI may include simple widgets (e.g., labels, buttons, checkboxes, sliders, text boxes) as well as more complex widgets (e.g., charts, maps, panels) for controlling the GUI layout. A complete list of the ui widgets and more information about panels can be found at the links below. Once a GUI is constructed, users can publish the App from the JavaScript Code Editor by clicking the Apps button above the script panel in the Code Editor.
|
||||
|
||||
@@ -2168,8 +2188,12 @@ Chapter F6.4: Combining R and Earth Engine
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
|
||||
::: {.callout-tip}
|
||||
# Chapter Information
|
||||
|
||||
## Author {.unlisted .unnumbered}
|
||||
|
||||
|
||||
|
||||
Cesar Aybar, David Montero, Antony Barja, Fernando Herrera, Andrea Gonzales, and Wendy Espinoza
|
||||
@@ -2199,8 +2223,9 @@ The purpose of this chapter is to introduce rgee, a non-official API for Earth E
|
||||
* Configure an environment variable and use .Renviron files.
|
||||
* Create Python virtual environments.
|
||||
|
||||
## Introduction to Theory {.unlisted .unnumbered}
|
||||
* * *
|
||||
:::
|
||||
## Introduction {.unlisted .unnumbered}
|
||||
|
||||
|
||||
R is a popular programming language established in statistical science with large support in reproducible research, geospatial analysis, data visualization, and much more. To get started with R, you will need to satisfy some extra software requirements. First, install an up-to-date R version (at least 4.0) in your work environment. The installation procedure will vary depending on your operating system (i.e., Windows, Mac, or Linux). Hands-On Programming with R (Garrett Grolemund 2014, Appendix A) explains step by step how to proceed. We strongly recommend that Windows users install Rtools to avoid compiling external static libraries.
|
||||
|
||||
|
||||
38
docs/F1.html
38
docs/F1.html
@@ -622,6 +622,16 @@ Note
|
||||
</section>
|
||||
<section id="exploring-images" class="level1" data-number="5">
|
||||
<h1 data-number="5"><span class="header-section-number">5</span> Exploring Images</h1>
|
||||
<div class="callout-tip callout callout-style-default callout-captioned">
|
||||
<div class="callout-header d-flex align-content-center">
|
||||
<div class="callout-icon-container">
|
||||
<i class="callout-icon"></i>
|
||||
</div>
|
||||
<div class="callout-caption-container flex-fill">
|
||||
Chapter Information
|
||||
</div>
|
||||
</div>
|
||||
<div class="callout-body-container callout-body">
|
||||
<section id="author-1" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-1">Author</h2>
|
||||
<p>Jeff Howarth</p>
|
||||
@@ -646,6 +656,8 @@ Note
|
||||
<li>Sign up for an Earth Engine account, open the Code Editor, and save your script (Chap. F1.0).</li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<section id="accessing-an-image" class="level2" data-number="5.1">
|
||||
<h2 data-number="5.1" class="anchored" data-anchor-id="accessing-an-image"><span class="header-section-number">5.1</span> Accessing an Image</h2>
|
||||
<p>If you have not already done so, be sure to add the book’s code repository to the Code Editor by entering <a href="https://www.google.com/url?q=https://code.earthengine.google.com/?accept_repo%3Dprojects/gee-edu/book&sa=D&source=editors&ust=1670414092189999&usg=AOvVaw1jWHeBmeq93I_lo_9useCA"></a><a href="https://www.google.com/url?q=https://code.earthengine.google.com/?accept_repo%3Dprojects/gee-edu/book&sa=D&source=editors&ust=1670414092190705&usg=AOvVaw3Z7cK8r6eOSYUceNjA8oUg">https://code.earthengine.google.com/?accept_repo=projects/gee-edu/book</a> into your browser. The book’s scripts will then be available in the script manager panel. If you have trouble finding the repo, you can visit <a href="https://www.google.com/url?q=https://docs.google.com/presentation/d/1Kt6wGNoesYm__Cu3k3bnlbbyPN6m9SF4hQHK-pIDHfc/edit%23slide%3Did.g18a7b4b055d_0_624&sa=D&source=editors&ust=1670414092191415&usg=AOvVaw2eETuRpR5worezkj7citx6">this link</a> for help.</p>
|
||||
@@ -906,6 +918,16 @@ Note
|
||||
<section id="survey-of-raster-datasets" class="level1" data-number="6">
|
||||
<h1 data-number="6"><span class="header-section-number">6</span> Survey of Raster Datasets</h1>
|
||||
<p>The previous chapter introduced you to images, one of the core building blocks of remotely sensed imagery in Earth Engine. In this chapter, we will expand on this concept of images by introducing image collections. Image collections in Earth Engine organize many different images into one larger data storage structure. Image collections include information about the location, date collected, and other properties of each image, allowing you to sift through the ImageCollection for the exact image characteristics needed for your analysis.</p>
|
||||
<div class="callout-tip callout callout-style-default callout-captioned">
|
||||
<div class="callout-header d-flex align-content-center">
|
||||
<div class="callout-icon-container">
|
||||
<i class="callout-icon"></i>
|
||||
</div>
|
||||
<div class="callout-caption-container flex-fill">
|
||||
Chapter Information
|
||||
</div>
|
||||
</div>
|
||||
<div class="callout-body-container callout-body">
|
||||
<section id="authors" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="authors">Authors</h2>
|
||||
<p>Andréa Puzzi Nicolau, Karen Dyson, David Saah, Nicholas Clinton</p>
|
||||
@@ -930,6 +952,8 @@ Note
|
||||
<li>Use the Inspector tab to assess pixel values (Chap. F1.1).</li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<section id="image-collections-an-organized-set-of-images" class="level2" data-number="6.1">
|
||||
<h2 data-number="6.1" class="anchored" data-anchor-id="image-collections-an-organized-set-of-images"><span class="header-section-number">6.1</span> Image Collections: An Organized Set of Images</h2>
|
||||
<p>There are many different types of image collections available in Earth Engine. These include collections of individual satellite images, pre-made composites that combine multiple images into one blended image, classified LULC maps, weather data, and other non-optical data sets. Each one of these is useful for different types of analyses. For example, one recent study examined the drivers of wildfires in Australia (Sulova and Jokar 2021). The research team used the European Center for Medium-Range Weather Forecast Reanalysis (ERA5) dataset produced by the European Center for Medium-Range Weather Forecasts (ECMWF) and is freely available in Earth Engine. We will look at this dataset later in the chapter.</p>
|
||||
@@ -1325,7 +1349,16 @@ Note
|
||||
</section>
|
||||
<section id="the-remote-sensing-vocabulary" class="level1" data-number="7">
|
||||
<h1 data-number="7"><span class="header-section-number">7</span> The Remote Sensing Vocabulary</h1>
|
||||
<hr>
|
||||
<div class="callout-tip callout callout-style-default callout-captioned">
|
||||
<div class="callout-header d-flex align-content-center">
|
||||
<div class="callout-icon-container">
|
||||
<i class="callout-icon"></i>
|
||||
</div>
|
||||
<div class="callout-caption-container flex-fill">
|
||||
Chapter Information
|
||||
</div>
|
||||
</div>
|
||||
<div class="callout-body-container callout-body">
|
||||
<section id="authors-1" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="authors-1">Authors</h2>
|
||||
<p>Karen Dyson, Andréa Puzzi Nicolau, David Saah, Nicholas Clinton</p>
|
||||
@@ -1347,8 +1380,9 @@ Note
|
||||
<li>Navigate among Earth Engine result tabs (Chap. F1.0).</li>
|
||||
<li>Visualize images with a variety of false-color band combinations (Chap. F1.1).</li>
|
||||
</ul>
|
||||
<hr>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<section id="introduction-1" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-1">Introduction</h2>
|
||||
<p>Images and image collections form the basis of many remote sensing analyses in Earth Engine. There are many different types of satellite imagery available to use in these analyses, but not every dataset is appropriate for every analysis. To choose the most appropriate dataset for your analysis, you should consider multiple factors. Among these are the resolution of the dataset—including the spatial, temporal, and spectral resolutions—as well as how the dataset was created and its quality.</p>
|
||||
|
||||
54
docs/F2.html
54
docs/F2.html
@@ -287,7 +287,16 @@ gtag('config', 'G-RK9ZLZQ6GL', { 'anonymize_ip': true});
|
||||
<p>Now that you know how images are viewed and what kinds of images exist in Earth Engine, how do we manipulate them? To gain the skills of interpreting images, you’ll work with bands, combining values to form indices and masking unwanted pixels. Then, you’ll learn some of the techniques available in Earth Engine for classifying images and interpreting the results.</p>
|
||||
<section id="image-manipulation-bands-arithmetic-thresholds-and-masks" class="level1" data-number="5">
|
||||
<h1 data-number="5"><span class="header-section-number">5</span> Image Manipulation: Bands, Arithmetic, Thresholds, and Masks</h1>
|
||||
<hr>
|
||||
<div class="callout-tip callout callout-style-default callout-captioned">
|
||||
<div class="callout-header d-flex align-content-center">
|
||||
<div class="callout-icon-container">
|
||||
<i class="callout-icon"></i>
|
||||
</div>
|
||||
<div class="callout-caption-container flex-fill">
|
||||
Chapter Information
|
||||
</div>
|
||||
</div>
|
||||
<div class="callout-body-container callout-body">
|
||||
<section id="author" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author">Author</h2>
|
||||
<p>Karen Dyson, Andréa Puzzi Nicolau, David Saah, and Nicholas Clinton</p>
|
||||
@@ -308,10 +317,11 @@ gtag('config', 'G-RK9ZLZQ6GL', { 'anonymize_ip': true});
|
||||
<ul>
|
||||
<li>Import images and image collections, filter, and visualize (Part F1).</li>
|
||||
</ul>
|
||||
<hr>
|
||||
</section>
|
||||
<section id="introduction-to-theory" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory">Introduction to Theory</h2>
|
||||
</div>
|
||||
</div>
|
||||
<section id="introduction" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction">Introduction</h2>
|
||||
<p>Spectral indices are based on the fact that different objects and land covers on the Earth’s surface reflect different amounts of light from the Sun at different wavelengths. In the visible part of the spectrum, for example, a healthy green plant reflects a large amount of green light while absorbing blue and red light—which is why it appears green to our eyes. Light also arrives from the Sun at wavelengths outside what the human eye can see, and there are large differences in reflectances between living and nonliving land covers, and between different types of vegetation, both in the visible and outside the visible wavelengths. We visualized this earlier, in Chaps. F1.1 and F1.3 when we mapped color-infrared images (Fig. F2.0.1).</p>
|
||||
<p><img src="F2/image39.png" class="img-fluid"></p>
|
||||
<p>Fig. F2.0.1 Mapped color-IR images from multiple satellite sensors that we mapped in Chap. F1.3. The near infrared spectrum is mapped as red, showing where there are high amounts of healthy vegetation.</p>
|
||||
@@ -584,7 +594,16 @@ Note
|
||||
</section>
|
||||
<section id="interpreting-an-image-classification" class="level1" data-number="6">
|
||||
<h1 data-number="6"><span class="header-section-number">6</span> Interpreting an Image: Classification</h1>
|
||||
<hr>
|
||||
<div class="callout-tip callout callout-style-default callout-captioned">
|
||||
<div class="callout-header d-flex align-content-center">
|
||||
<div class="callout-icon-container">
|
||||
<i class="callout-icon"></i>
|
||||
</div>
|
||||
<div class="callout-caption-container flex-fill">
|
||||
Chapter Information
|
||||
</div>
|
||||
</div>
|
||||
<div class="callout-body-container callout-body">
|
||||
<section id="author-1" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-1">Author</h2>
|
||||
<p>Andréa Puzzi Nicolau, Karen Dyson, David Saah, Nicholas Clinton</p>
|
||||
@@ -610,9 +629,10 @@ Note
|
||||
<li>Understand bands and how to select them (Chap. F1.2, Chap. F2.0).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory-1" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory-1">Introduction to Theory</h2>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
<section id="introduction-1" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-1">Introduction</h2>
|
||||
<p>Classification is addressed in a broad range of fields, including mathematics, statistics, data mining, machine learning, and more. For a deeper treatment of classification, interested readers may see some of the following suggestions: Witten et al. (2011), Hastie et al. (2009), Goodfellow et al. (2016), Gareth et al. (2013), Géron (2019), Müller et al. (2016), or Witten et al. (2005). Unlike regression, which predicts continuous variables, classification predicts categorical, or discrete, variables—variables with a finite number of categories (e.g., age range).</p>
|
||||
<p>In remote sensing, image classification is an attempt to categorize all pixels in an image into a finite number of labeled land cover and/or land use classes. The resulting classified image is a simplified thematic map derived from the original image (Fig. F2.1.1). Land cover and land use information is essential for many environmental and socioeconomic applications, including natural resource management, urban planning, biodiversity conservation, agricultural monitoring, and carbon accounting.</p>
|
||||
<p><img src="F2/image48.png" class="img-fluid"></p>
|
||||
@@ -862,7 +882,16 @@ Note
|
||||
</section>
|
||||
<section id="accuracy-assessment-quantifying-classification-quality" class="level1" data-number="7">
|
||||
<h1 data-number="7"><span class="header-section-number">7</span> Accuracy Assessment: Quantifying Classification Quality</h1>
|
||||
<hr>
|
||||
<div class="callout-tip callout callout-style-default callout-captioned">
|
||||
<div class="callout-header d-flex align-content-center">
|
||||
<div class="callout-icon-container">
|
||||
<i class="callout-icon"></i>
|
||||
</div>
|
||||
<div class="callout-caption-container flex-fill">
|
||||
Chapter Information
|
||||
</div>
|
||||
</div>
|
||||
<div class="callout-body-container callout-body">
|
||||
<section id="author-2" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-2">Author</h2>
|
||||
<p>Andréa Puzzi Nicolau, Karen Dyson, David Saah, Nicholas Clinton</p>
|
||||
@@ -887,9 +916,10 @@ Note
|
||||
<li>Perform a supervised Random Forest image classification (Chap. F2.1).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory-2" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory-2">Introduction to Theory</h2>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
<section id="introduction-2" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-2">Introduction</h2>
|
||||
<p>Any map or remotely sensed product is a generalization or model that will have inherent errors. Products derived from remotely sensed data used for scientific purposes and policymaking require a quantitative measure of accuracy to strengthen the confidence in the information generated (Foody 2002, Strahler et al. 2006, Olofsson et al. 2014). Accuracy assessment is a crucial part of any classification project, as it measures the degree to which the classification agrees with another data source that is considered to be accurate, ground-truth data (i.e., “reality”).</p>
|
||||
<p>The history of accuracy assessment reveals increasing detail and rigor in the analysis, moving from a basic visual appraisal of the derived map (Congalton 1994, Foody 2002) to the definition of best practices for sampling and response designs and the calculation of accuracy metrics (Foody 2002, Stehman 2013, Olofsson et al. 2014, Stehman and Foody 2019). The confusion matrix (also called the “error matrix”) (Stehman 1997) summarizes key accuracy metrics used to assess products derived from remotely sensed data.</p>
|
||||
<p>In Chap. F2.1, we asked whether the classification results were satisfactory. In remote sensing, the quantification of the answer to that question is called accuracy assessment. In the classification context, accuracy measurements are often derived from a confusion matrix.</p>
|
||||
|
||||
84
docs/F4.html
84
docs/F4.html
@@ -297,7 +297,7 @@ gtag('config', 'G-RK9ZLZQ6GL', { 'anonymize_ip': true});
|
||||
</ul></li>
|
||||
<li><a href="#interpreting-time-series-with-ccdc" id="toc-interpreting-time-series-with-ccdc" class="nav-link" data-scroll-target="#interpreting-time-series-with-ccdc"><span class="toc-section-number">13</span> Interpreting Time Series with CCDC</a>
|
||||
<ul class="collapse">
|
||||
<li><a href="#introduction-to-theory-6" id="toc-introduction-to-theory-6" class="nav-link" data-scroll-target="#introduction-to-theory-6"><span class="toc-section-number">13.1</span> Introduction to Theory </a></li>
|
||||
<li><a href="#introduction-to-theory" id="toc-introduction-to-theory" class="nav-link" data-scroll-target="#introduction-to-theory"><span class="toc-section-number">13.1</span> Introduction to Theory </a></li>
|
||||
<li><a href="#understanding-temporal-segmentation-with-ccdc" id="toc-understanding-temporal-segmentation-with-ccdc" class="nav-link" data-scroll-target="#understanding-temporal-segmentation-with-ccdc"><span class="toc-section-number">13.2</span> Understanding Temporal Segmentation with CCDC</a></li>
|
||||
<li><a href="#running-ccdc" id="toc-running-ccdc" class="nav-link" data-scroll-target="#running-ccdc"><span class="toc-section-number">13.3</span> Running CCDC</a></li>
|
||||
<li><a href="#extracting-break-information" id="toc-extracting-break-information" class="nav-link" data-scroll-target="#extracting-break-information"><span class="toc-section-number">13.4</span> Extracting Break Information</a></li>
|
||||
@@ -308,8 +308,6 @@ gtag('config', 'G-RK9ZLZQ6GL', { 'anonymize_ip': true});
|
||||
</ul></li>
|
||||
<li><a href="#data-fusion-merging-classification-streams" id="toc-data-fusion-merging-classification-streams" class="nav-link" data-scroll-target="#data-fusion-merging-classification-streams"><span class="toc-section-number">14</span> Data Fusion: Merging Classification Streams</a>
|
||||
<ul class="collapse">
|
||||
<li><a href="#imagery-and-classifications-of-the-roosevelt-river" id="toc-imagery-and-classifications-of-the-roosevelt-river" class="nav-link" data-scroll-target="#imagery-and-classifications-of-the-roosevelt-river"><span class="toc-section-number">14.1</span> Imagery and Classifications of the Roosevelt River</a></li>
|
||||
<li><a href="#basics-of-the-bulc-interface" id="toc-basics-of-the-bulc-interface" class="nav-link" data-scroll-target="#basics-of-the-bulc-interface"><span class="toc-section-number">14.2</span> Basics of the BULC Interface</a></li>
|
||||
<li><a href="#detailed-lulc-inspection-with-bulc" id="toc-detailed-lulc-inspection-with-bulc" class="nav-link" data-scroll-target="#detailed-lulc-inspection-with-bulc"><span class="toc-section-number">14.3</span> Detailed LULC Inspection with BULC</a></li>
|
||||
<li><a href="#change-detection-with-bulc-d" id="toc-change-detection-with-bulc-d" class="nav-link" data-scroll-target="#change-detection-with-bulc-d"><span class="toc-section-number">14.4</span> Change Detection with BULC-D</a></li>
|
||||
<li><a href="#change-detection-with-bulc-and-dynamic-world" id="toc-change-detection-with-bulc-and-dynamic-world" class="nav-link" data-scroll-target="#change-detection-with-bulc-and-dynamic-world"><span class="toc-section-number">14.5</span> Change Detection with BULC and Dynamic World</a>
|
||||
@@ -356,7 +354,7 @@ gtag('config', 'G-RK9ZLZQ6GL', { 'anonymize_ip': true});
|
||||
<p>One of the paradigm-changing features of Earth Engine is the ability to access decades of imagery without the previous limitation of needing to download all the data to a local disk for processing. Because remote-sensing data files can be enormous, this used to limit many projects to viewing two or three images from different periods. With Earth Engine, users can access tens or hundreds of thousands of images to understand the status of places across decades.</p>
|
||||
<section id="filter-map-reduce" class="level1" data-number="6">
|
||||
<h1 data-number="6"><span class="header-section-number">6</span> Filter, Map, Reduce</h1>
|
||||
<hr>
|
||||
<p>::: {.callout-tip} # Chapter Information</p>
|
||||
<section id="author" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author">Author</h2>
|
||||
<p>Jeffrey A. Cardille</p>
|
||||
@@ -381,9 +379,8 @@ gtag('config', 'G-RK9ZLZQ6GL', { 'anonymize_ip': true});
|
||||
<li>Perform basic image analysis: select bands, compute indices, create masks (Part F2).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory">Introduction to Theory</h2>
|
||||
<hr>
|
||||
<section id="introduction" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction">Introduction</h2>
|
||||
<p>Prior chapters focused on exploring individual images—for example, viewing the characteristics of single satellite images by displaying different combinations of bands (Chap. F1.1), viewing single images from different datasets (Chap. F1.2, Chap. F1.3), and exploring image processing principles (Parts F2, F3) as they are implemented for cloud-based remote sensing in Earth Engine. Each image encountered in those chapters was pulled from a larger assemblage of images taken from the same sensor. The chapters used a few ways to narrow down the number of images in order to view just one for inspection (Part F1) or manipulation (Part F2, Part F3).</p>
|
||||
<p>In this chapter and most of the chapters that follow, we will move from the domain of single images to the more complex and distinctive world of working with image collections, one of the fundamental data types within Earth Engine. The ability to conceptualize and manipulate entire image collections distinguishes Earth Engine and gives it considerable power for interpreting change and stability across space and time.</p>
|
||||
<p>When looking for change or seeking to understand differences in an area through time, we often proceed through three ordered stages, which we will color code in this first explanatory part of the lab:</p>
|
||||
@@ -550,7 +547,7 @@ Note
|
||||
</section>
|
||||
<section id="exploring-image-collections" class="level1" data-number="7">
|
||||
<h1 data-number="7"><span class="header-section-number">7</span> Exploring Image Collections</h1>
|
||||
<hr>
|
||||
<p>::: {.callout-tip} # Chapter Information</p>
|
||||
<section id="author-1" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-1">Author</h2>
|
||||
<p>Gennadii Donchyts</p>
|
||||
@@ -740,7 +737,7 @@ Note
|
||||
</section>
|
||||
<section id="aggregating-images-for-time-series" class="level1" data-number="8">
|
||||
<h1 data-number="8"><span class="header-section-number">8</span> Aggregating Images for Time Series</h1>
|
||||
<hr>
|
||||
<p>::: {.callout-tip} # Chapter Information</p>
|
||||
<section id="author-2" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-2">Author</h2>
|
||||
<p>Ujaval Gandhi</p>
|
||||
@@ -771,9 +768,8 @@ Note
|
||||
<li>Inspect an Image and an ImageCollection, as well as their properties (Chap. F4.1).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory-1" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory-1">Introduction to Theory</h2>
|
||||
<hr>
|
||||
<section id="introduction-1" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-1">Introduction</h2>
|
||||
<p>CHIRPS is a high-resolution global gridded rainfall dataset that combines satellite-measured precipitation with ground station data in a consistent, long time-series dataset. The data are provided by the University of California, Santa Barbara, and are available from 1981 to the present. This dataset is extremely useful in drought monitoring and assessing global environmental change over land. The satellite data are calibrated with ground station observations to create the final product.</p>
|
||||
<p>In this exercise, we will work with the CHIRPS dataset using the pentad. A pentad represents the grouping of five days. There are six pentads in a calendar month, with five pentads of exactly five days each and one pentad with the remaining three to six days of the month. Pentads reset at the beginning of each month, and the first day of every month is the start of a new pentad. Values at a given pixel in the CHIRPS dataset represent the total precipitation in millimeters over the pentad.</p>
|
||||
</section>
|
||||
@@ -949,7 +945,7 @@ print(yearlyCollection);</p>
|
||||
</section>
|
||||
<section id="clouds-and-image-compositing" class="level1" data-number="9">
|
||||
<h1 data-number="9"><span class="header-section-number">9</span> Clouds and Image Compositing</h1>
|
||||
<hr>
|
||||
<p>::: {.callout-tip} # Chapter Information</p>
|
||||
<section id="author-3" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-3">Author</h2>
|
||||
<p>:</p>
|
||||
@@ -979,9 +975,8 @@ print(yearlyCollection);</p>
|
||||
<li>Summarize an ImageCollection with reducers (Chap. F4.0, Chap. F4.1).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory-2" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory-2">Introduction to Theory</h2>
|
||||
<hr>
|
||||
<section id="introduction-2" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-2">Introduction</h2>
|
||||
<p>In many respects, satellite remote sensing is an ideal source of data for monitoring large or remote regions. However, cloud cover is one of the most common limitations of optical sensors in providing continuous time series of data for surface mapping and monitoring. This is particularly relevant in tropical, polar, mountainous, and high-latitude areas, where clouds are often present. Many studies have addressed the extent to which cloudiness can restrict the monitoring of various regions (Zhu and Woodcock 2012, 2014; Eberhardt et al. 2016; Martins et al. 2018).</p>
|
||||
<p>Clouds and cloud shadows reduce the view of optical sensors and completely block or obscure the spectral response from Earth’s surface (Cao et al. 2020). Working with pixels that are cloud-contaminated can significantly influence the accuracy and information content of products derived from a variety of remote sensing activities, including land cover classification, vegetation modeling, and especially change detection, where unscreened clouds might be mapped as false changes (Braaten et al. 2015, Zhu et al. 2015). Thus, the information provided by cloud detection algorithms is critical to exclude clouds and cloud shadows from subsequent processing steps.</p>
|
||||
<p>Historically, cloud detection algorithms derived the cloud information by considering a single date-image and sun illumination geometry (Irish et al. 2006, Huang et al. 2010). In contrast, current, more accurate cloud detection algorithms are based on the analysis of Landsat time series (Zhu and Woodcock 2014, Zhu and Helmer 2018). Cloud detection algorithms inform on the presence of clouds, cloud shadows, and other atmospheric conditions (e.g., presence of snow). The presence and extent of cloud contamination within a pixel is currently provided with Landsat and Sentinel-2 imagery as ancillary data via quality flags at the pixel level. Additionally, quality flags also inform on other acquisition-related conditions, including radiometric saturation and terrain occlusion, which enables us to assess the usefulness and convenience of inclusion of each pixel in subsequent analyses. The quality flags are ideally suited to reduce users’ manual supervision and maximize the automatic processing approaches.</p>
|
||||
@@ -1264,7 +1259,7 @@ Note
|
||||
</section>
|
||||
<section id="change-detection" class="level1" data-number="10">
|
||||
<h1 data-number="10"><span class="header-section-number">10</span> Change Detection</h1>
|
||||
<hr>
|
||||
<p>::: {.callout-tip} # Chapter Information</p>
|
||||
<section id="author-4" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-4">Author</h2>
|
||||
<p>Karis Tenneson, John Dilger, Crystal Wespestad, Brian Zutta, Andréa P Nicolau, Karen Dyson, Paula Paz</p>
|
||||
@@ -1289,9 +1284,8 @@ Note
|
||||
<li>Perform basic image analysis: select bands, compute indices, create masks (Part F2).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory-3" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory-3">Introduction to Theory</h2>
|
||||
<hr>
|
||||
<section id="introduction-3" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-3">Introduction</h2>
|
||||
<p>Change detection is the process of assessing how landscape conditions are changing by looking at differences in images acquired at different times. This can be used to quantify changes in forest cover—such as those following a volcanic eruption, logging activity, or wildfire—or when crops are harvested (Fig. F4.4.1). For example, using time-series change detection methods, Hansen et al. (2013) quantified annual changes in forest loss and regrowth. Change detection mapping is important for observing, monitoring, and quantifying changes in landscapes over time. Key questions that can be answered using these techniques include identifying whether a change has occurred, measuring the area or the spatial extent of the region undergoing change, characterizing the nature of the change, and measuring the pattern (configuration or composition) of the change (MacLeod and Congalton 1998).</p>
|
||||
<ol type="a">
|
||||
<li></li>
|
||||
@@ -1469,7 +1463,7 @@ Note
|
||||
</section>
|
||||
<section id="interpreting-annual-time-series-with-landtrendr" class="level1" data-number="11">
|
||||
<h1 data-number="11"><span class="header-section-number">11</span> Interpreting Annual Time Series with LandTrendr</h1>
|
||||
<hr>
|
||||
<p>::: {.callout-tip} # Chapter Information</p>
|
||||
<section id="author-5" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-5">Author</h2>
|
||||
<p>Robert Kennedy, Justin Braaten, Peter Clary</p>
|
||||
@@ -1494,9 +1488,8 @@ Note
|
||||
<li>Interpret bands and indices in terms of land surface characteristics (Chap. F2.0).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory-4" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory-4">Introduction to Theory</h2>
|
||||
<hr>
|
||||
<section id="introduction-4" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-4">Introduction</h2>
|
||||
<p>Land surface change happens all the time, and satellite sensors witness it. If a spectral index is chosen to match the type of change being sought, surface change can be inferred from changes in spectral index values. Over time, the progression of spectral values witnessed in each pixel tells a story of the processes of change, such as growth and disturbance. Time-series algorithms are designed to leverage many observations of spectral values over time to isolate and describe changes of interest, while ignoring uninteresting change or noise.</p>
|
||||
<p>In this lab, we use the LandTrendr time-series algorithms to map change. The LandTrendr algorithms apply “temporal segmentation” strategies to distill a multiyear time series into sequential straight-line segments that describe the change processes occurring in each pixel. We then isolate the segment of interest in each pixel and make maps of when, how long, and how intensely each process occurred. Similar strategies can be applied to more complicated descriptions of the time series, as is seen in some of the chapters that follow this one.</p>
|
||||
<p>For this lab, we will use a graphical user interface (GUI) to teach the concepts of LandTrendr.</p>
|
||||
@@ -1627,7 +1620,7 @@ Note
|
||||
</section>
|
||||
<section id="fitting-functions-to-time-series" class="level1" data-number="12">
|
||||
<h1 data-number="12"><span class="header-section-number">12</span> Fitting Functions to Time Series</h1>
|
||||
<hr>
|
||||
<p>::: {.callout-tip} # Chapter Information</p>
|
||||
<section id="author-6" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-6">Author</h2>
|
||||
<p>Andréa Puzzi Nicolau, Karen Dyson, Biplov Bhandari, David Saah, Nicholas Clinton</p>
|
||||
@@ -1655,9 +1648,8 @@ Note
|
||||
<li>Mask cloud, cloud shadow, snow/ice, and other undesired pixels (Chap. F4.3).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory-5" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory-5">Introduction to Theory</h2>
|
||||
<hr>
|
||||
<section id="introduction-5" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-5">Introduction</h2>
|
||||
<p>Many natural and man-made phenomena exhibit important annual, interannual, or longer-term trends that recur—that is, they occur at roughly regular intervals. Examples include seasonality in leaf patterns in deciduous forests and seasonal crop growth patterns. Over time, indices such as the Normalized Difference Vegetation Index (NDVI) will show regular increases (e.g., leaf-on, crop growth) and decreases (e.g., leaf-off, crop senescence), and typically have a long-term, if noisy, trend such as a gradual increase in NDVI value as an area recovers from a disturbance.</p>
|
||||
<p>Earth Engine supports the ability to do complex linear and non-linear regressions of values in each pixel of a study area. Simple linear regressions of indices can reveal linear trends that can span multiple years. Meanwhile, harmonic terms can be used to fit a sine-wave-like curve. Once you have the ability to fit these functions to time series, you can answer many important questions. For example, you can define vegetation dynamics over multiple time scales, identify phenology and track changes year to year, and identify deviations from the expected patterns (Bradley et al. 2007, Bullock et al. 2020). There are multiple applications for these analyses. For example, algorithms to detect deviations from the expected pattern can be used to identify disturbance events, including deforestation and forest degradation (Bullock et al. 2020).</p>
|
||||
<p>If you have not already done so, be sure to add the book’s code repository to the Code Editor by entering <a href="https://www.google.com/url?q=https://code.earthengine.google.com/?accept_repo%3Dprojects/gee-edu/book&sa=D&source=editors&ust=1671458868327546&usg=AOvVaw0m0oT1feMKQKRq3rtuOxfY">https://code.earthengine.google.com/?accept_repo=projects/gee-edu/book</a> into your browser. The book’s scripts will then be available in the script manager panel.</p>
|
||||
@@ -1988,7 +1980,7 @@ Note
|
||||
</section>
|
||||
<section id="interpreting-time-series-with-ccdc" class="level1" data-number="13">
|
||||
<h1 data-number="13"><span class="header-section-number">13</span> Interpreting Time Series with CCDC</h1>
|
||||
<hr>
|
||||
<p>::: {.callout-tip} # Chapter Information</p>
|
||||
<section id="author-7" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-7">Author</h2>
|
||||
<p> </p>
|
||||
@@ -2020,8 +2012,8 @@ Note
|
||||
<li>Interpret fitted harmonic models (Chap. F4.6).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory-6" class="level2" data-number="13.1">
|
||||
<h2 data-number="13.1" class="anchored" data-anchor-id="introduction-to-theory-6"><span class="header-section-number">13.1</span> Introduction to Theory </h2>
|
||||
<section id="introduction-to-theory" class="level2" data-number="13.1">
|
||||
<h2 data-number="13.1" class="anchored" data-anchor-id="introduction-to-theory"><span class="header-section-number">13.1</span> Introduction to Theory </h2>
|
||||
<p>“A time series is a sequence of observations taken sequentially in time. … An intrinsic feature of a time series is that, typically, adjacent observations are dependent. Time-series analysis is concerned with techniques for the analysis of this dependency.” This is the formal definition of time-series analysis by Box et al. (1994). In a remote sensing context, the observations of interest are measurements of radiation reflected from the surface of the Earth from the Sun or an instrument emitting energy toward Earth. Consecutive measurements made over a given area result in a time series of surface reflectance. By analyzing such time series, we can achieve a comprehensive characterization of ecosystem and land surface processes (Kennedy et al. 2014). The result is a shift away from traditional, retrospective change-detection approaches based on data acquired over the same area at two or a few points in time to continuous monitoring of the landscape (Woodcock et al. 2020). Previous obstacles related to data storage, preprocessing, and computing power have been largely overcome with the emergence of powerful cloud-computing platforms that provide direct access to the data (Gorelick et al. 2017). In this chapter, we will illustrate how to study landscape dynamics in the Amazon river basin by analyzing dense time series of Landsat data using the CCDC algorithm. Unlike LandTrendr (Chap. F4.5), which uses anniversary images to fit straight line segments that describe the spectral trajectory over time, CCDC uses all available clear observations. This has multiple advantages, including the ability to detect changes within a year and capture seasonal patterns, although at the expense of much higher computational demands and more complexity to manipulate the outputs, compared to LandTrendr.</p>
|
||||
</section>
|
||||
<section id="understanding-temporal-segmentation-with-ccdc" class="level2" data-number="13.2">
|
||||
@@ -2389,7 +2381,16 @@ Note
|
||||
</section>
|
||||
<section id="data-fusion-merging-classification-streams" class="level1" data-number="14">
|
||||
<h1 data-number="14"><span class="header-section-number">14</span> Data Fusion: Merging Classification Streams</h1>
|
||||
<hr>
|
||||
<div class="callout-tip callout callout-style-default callout-captioned">
|
||||
<div class="callout-header d-flex align-content-center">
|
||||
<div class="callout-icon-container">
|
||||
<i class="callout-icon"></i>
|
||||
</div>
|
||||
<div class="callout-caption-container flex-fill">
|
||||
Chapter Information
|
||||
</div>
|
||||
</div>
|
||||
<div class="callout-body-container callout-body">
|
||||
<section id="author-8" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-8">Author</h2>
|
||||
<p>Jeffrey A. Cardille, Rylan Boothman, Mary Villamor, Elijah Perez, Eidan Willis, Flavie Pelletier</p>
|
||||
@@ -2416,9 +2417,8 @@ Note
|
||||
<li>Obtain accuracy metrics from classifications (Chap. F2.2).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory-7" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory-7">Introduction to Theory</h2>
|
||||
<hr>
|
||||
<section id="introduction-6" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-6">Introduction</h2>
|
||||
<p>When working with multiple sensors, we are often presented with a challenge: What to do with classification noise? It’s almost impossible to remove all noise from a classification. Given the information contained in a stream of classifications, however, you should be able to use the temporal context to distinguish noise from true changes in the landscape.</p>
|
||||
<p>The Bayesian Updating of Land Cover (BULC) algorithm (Cardille and Fortin 2016) is designed to extract the signal from the noise in a stream of classifications made from any number of data sources. BULC’s principal job is to estimate, at each time step, the likeliest state of land use and land cover (LULC) in a study area given the accumulated evidence to that point. It takes a stack of provisional classifications as input; in keeping with the terminology of Bayesian statistics, these are referred to as “Events,” because they provide new evidence to the system. BULC then returns a stack of classifications as output that represents the estimated LULC time series implied by the Events. </p>
|
||||
<p>BULC estimates, at each time step, the most likely class from a set given the evidence up to that point in time. This is done by employing an accuracy assessment matrix like that seen in Chap. F2.2. At each time step, the algorithm quantifies the agreement between two classifications adjacent in time within a time series.</p>
|
||||
@@ -2481,7 +2481,11 @@ Note
|
||||
</section>
|
||||
<section id="basics-of-the-bulc-interface" class="level2" data-number="14.2">
|
||||
<h2 data-number="14.2" class="anchored" data-anchor-id="basics-of-the-bulc-interface"><span class="header-section-number">14.2</span> Basics of the BULC Interface</h2>
|
||||
<p>To see if BULC can successfully sift through these Events, we will use BULC’s GUI (Fig. F4.8.1), which makes interacting with the functionality straightforward. ::: {.callout-note} Code Checkpoint F48b in the book’s repository contains information about accessing that interface. ::: <img src="F4/image5.png" class="img-fluid"></p>
|
||||
<p>To see if BULC can successfully sift through these Events, we will use BULC’s GUI (Fig. F4.8.1), which makes interacting with the functionality straightforward. ::: {.callout-note} Code Checkpoint F48b in the book’s repository contains information about accessing that interface.</p>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<p><img src="F4/image5.png" class="img-fluid"></p>
|
||||
<p>Fig. F4.8.1 BULC interface</p>
|
||||
<p>After you have run the script, BULC’s interface requires that a few parameters be set; these are specified using the left panel. Here, we describe and populate each of the required parameters, which are shown in red. As you proceed, the default red color will change to green when a parameter receives a value.</p>
|
||||
<ul>
|
||||
@@ -2518,7 +2522,6 @@ Note
|
||||
<li>Zoom. This draws the final BULC classification at multiple scales, with the finest-scale image matching that shown in the Map window.</li>
|
||||
</ol>
|
||||
<p>Question 2. Select the BULC option, then select the Movie tool to view the result, and choose a drawing speed and resolution. When viewing the full area, would you assess the additional LULC changes since 2016 as being minor, moderate, or major compared to the changes that occurred before 2016? Explain the reasoning for your assessment.</p>
|
||||
</section>
|
||||
<section id="detailed-lulc-inspection-with-bulc" class="level2" data-number="14.3">
|
||||
<h2 data-number="14.3" class="anchored" data-anchor-id="detailed-lulc-inspection-with-bulc"><span class="header-section-number">14.3</span> Detailed LULC Inspection with BULC</h2>
|
||||
<p>BULC results can be viewed interactively, allowing you to view more detailed estimations of the LULC around the study area. We will zoom into a specific area where change did occur after 2016. To do that, turn on the Satellite view and zoom in. Watching the scale bar in the lower right of the Map panel, continue zooming until the scale bar says 5 km. Then, enter “-60.742, -9.844” in the Earth Engine search tool, located above the code. The text will be interpreted as a longitude/latitude value and will offer you a nearby coordinate, indicated with a value for the degrees West and the degrees South. Click that entry and Earth Engine will move to that location, while keeping at the specified zoom level. Let’s compare the BULC result in this sector against the image from Earth Engine’s satellite view that is underneath it (Fig. 4.8.4).</p>
|
||||
@@ -2665,7 +2668,7 @@ Note
|
||||
</section>
|
||||
<section id="exploring-lagged-effects-in-time-series" class="level1" data-number="15">
|
||||
<h1 data-number="15"><span class="header-section-number">15</span> Exploring Lagged Effects in Time Series </h1>
|
||||
<hr>
|
||||
<p>::: {.callout-tip} # Chapter Information</p>
|
||||
<section id="author-9" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-9">Author</h2>
|
||||
<p>Andréa Puzzi Nicolau, Karen Dyson, David Saah, Nicholas Clinton</p>
|
||||
@@ -2694,9 +2697,8 @@ Note
|
||||
<li>Fit linear and nonlinear functions with regression in an ImageCollection time series (Chap. F4.6).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory-8" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory-8">Introduction to Theory</h2>
|
||||
<hr>
|
||||
<section id="introduction-7" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-7">Introduction</h2>
|
||||
<p>While fitting functions to time series allows you to account for seasonality in your models, sometimes the impact of a seasonal event does not impact your dependent variable until the next month, the next year, or even multiple years later. For example, coconuts take 18–24 months to develop from flower to harvestable size. Heavy rains during the flower development stage can severely reduce the number of coconuts that can be harvested months later, with significant negative economic repercussions. These patterns—where events in one time period impact our variable of interest in later time periods—are important to be able to include in our models.</p>
|
||||
<p>In this chapter, we introduce lagged effects into our previous discussions on interpreting time-series data (Chaps. F4.6 and F4.7). Being able to integrate lagged effects into our time-series models allows us to address many important questions. For example, streamflow can be accurately modeled by taking into account previous streamflow, rainfall, and soil moisture; this improved understanding helps predict and mitigate the impacts of drought and flood events made more likely by climate change (Sazib et al. 2020). As another example, time-series lag analysis was able to determine that decreased rainfall was associated with increases in livestock disease outbreaks one year later in India (Karthikeyan et al. 2021).</p>
|
||||
</section>
|
||||
|
||||
30
docs/F5.html
30
docs/F5.html
@@ -272,7 +272,7 @@ gtag('config', 'G-RK9ZLZQ6GL', { 'anonymize_ip': true});
|
||||
</ul></li>
|
||||
<li><a href="#zonal-statistics" id="toc-zonal-statistics" class="nav-link" data-scroll-target="#zonal-statistics"><span class="toc-section-number">9</span> Zonal Statistics</a>
|
||||
<ul class="collapse">
|
||||
<li><a href="#introduction-to-theory-1" id="toc-introduction-to-theory-1" class="nav-link" data-scroll-target="#introduction-to-theory-1"><span class="toc-section-number">9.1</span> Introduction to Theory </a></li>
|
||||
<li><a href="#introduction-to-theory" id="toc-introduction-to-theory" class="nav-link" data-scroll-target="#introduction-to-theory"><span class="toc-section-number">9.1</span> Introduction to Theory </a></li>
|
||||
<li><a href="#functions" id="toc-functions" class="nav-link" data-scroll-target="#functions"><span class="toc-section-number">9.2</span> Functions</a>
|
||||
<ul class="collapse">
|
||||
<li><a href="#function-bufferpointsradius-bounds" id="toc-function-bufferpointsradius-bounds" class="nav-link" data-scroll-target="#function-bufferpointsradius-bounds"><span class="toc-section-number">9.2.1</span> Function: bufferPoints(radius, bounds)</a></li>
|
||||
@@ -336,7 +336,7 @@ gtag('config', 'G-RK9ZLZQ6GL', { 'anonymize_ip': true});
|
||||
<p>In addition to raster data processing, Earth Engine supports a rich set of vector processing tools. This Part introduces you to the vector framework in Earth Engine, shows you how to create and to import your vector data, and how to combine vector and raster data for analyses.</p>
|
||||
<section id="exploring-vectors" class="level1" data-number="7">
|
||||
<h1 data-number="7"><span class="header-section-number">7</span> Exploring Vectors</h1>
|
||||
<hr>
|
||||
<p>::: {.callout-tip} # Chapter Information</p>
|
||||
<section id="author" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author">Author</h2>
|
||||
<p>AJ Purdy, Ellen Brock, David Saah</p>
|
||||
@@ -617,7 +617,16 @@ Note
|
||||
</section>
|
||||
<section id="rastervector-conversions" class="level1" data-number="8">
|
||||
<h1 data-number="8"><span class="header-section-number">8</span> Raster/Vector Conversions</h1>
|
||||
<hr>
|
||||
<div class="callout-tip callout callout-style-default callout-captioned">
|
||||
<div class="callout-header d-flex align-content-center">
|
||||
<div class="callout-icon-container">
|
||||
<i class="callout-icon"></i>
|
||||
</div>
|
||||
<div class="callout-caption-container flex-fill">
|
||||
Chapter Information
|
||||
</div>
|
||||
</div>
|
||||
<div class="callout-body-container callout-body">
|
||||
<section id="author-1" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-1">Author</h2>
|
||||
<p>Keiko Nomura, Samuel Bowers</p>
|
||||
@@ -648,9 +657,10 @@ Note
|
||||
<li>Use reduceRegions to summarize an image in irregular shapes (Chap. F5.0).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory">Introduction to Theory</h2>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
<section id="introduction" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction">Introduction</h2>
|
||||
<p>Raster data consists of regularly spaced pixels arranged into rows and columns, familiar as the format of satellite images. Vector data contains geometry features (i.e., points, lines, and polygons) describing locations and areas. Each data format has its advantages, and both will be encountered as part of GIS operations.</p>
|
||||
<p>Raster and vector data are commonly combined (e.g., extracting image information for a given location or clipping an image to an area of interest); however, there are also situations in which conversion between the two formats is useful. In making such conversions, it is important to consider the key advantages of each format. Rasters can store data efficiently where each pixel has a numerical value, while vector data can more effectively represent geometric features where homogenous areas have shared properties. Each format lends itself to distinctive analytical operations, and combining them can be powerful.</p>
|
||||
<p>In this exercise, we’ll use topographic elevation and forest change images in Colombia as well as a protected area feature collection to practice the conversion between raster and vector formats, and to identify situations in which this is worthwhile.</p>
|
||||
@@ -1151,7 +1161,7 @@ Note
|
||||
</section>
|
||||
<section id="zonal-statistics" class="level1" data-number="9">
|
||||
<h1 data-number="9"><span class="header-section-number">9</span> Zonal Statistics</h1>
|
||||
<hr>
|
||||
<p>::: {.callout-tip} # Chapter Information</p>
|
||||
<section id="author-2" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-2">Author</h2>
|
||||
<p> </p>
|
||||
@@ -1185,8 +1195,8 @@ Note
|
||||
<li>Write a function and map it over a FeatureCollection (Chap. F5.1).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory-1" class="level2" data-number="9.1">
|
||||
<h2 data-number="9.1" class="anchored" data-anchor-id="introduction-to-theory-1"><span class="header-section-number">9.1</span> Introduction to Theory </h2>
|
||||
<section id="introduction-to-theory" class="level2" data-number="9.1">
|
||||
<h2 data-number="9.1" class="anchored" data-anchor-id="introduction-to-theory"><span class="header-section-number">9.1</span> Introduction to Theory </h2>
|
||||
<p>Anyone working with field data collected at plots will likely need to summarize raster-based data associated with those plots. For instance, they need to know the Normalized Difference Vegetation Index (NDVI), precipitation, or elevation for each plot (or surrounding region). Calculating statistics from a raster within given regions is called zonal statistics. Zonal statistics were calculated in Chaps. F5.0 and F5.1 using ee.Image.ReduceRegions. Here, we present a more general approach to calculating zonal statistics with a custom function that works for both ee.Image and ee.ImageCollection objects. In addition to its flexibility, the reduction method used here is less prone to “Computed value is too large” errors that can occur when using ReduceRegions with very large or complex ee.FeatureCollection object inputs.</p>
|
||||
<p>The zonal statistics function in this chapter works for an Image or an ImageCollection. Running the function over an ImageCollection will produce a table with values from each image in the collection per point. Image collections can be processed before extraction as needed—for example, by masking clouds from satellite imagery or by constraining the dates needed for a particular research question. In this tutorial, the data extracted from rasters are exported to a table for analysis, where each row of the table corresponds to a unique point-image combination.</p>
|
||||
<p>In fieldwork, researchers often work with plots, which are commonly recorded as polygon files or as a center point with a set radius. It is rare that plots will be set directly in the center of pixels from your desired raster dataset, and many field GPS units have positioning errors. Because of these issues, it may be important to use a statistic of adjacent pixels (as described in Chap. F3.2) to estimate the central value in what’s often called a neighborhood mean or focal mean (Cansler and McKenzie 2012, Miller and Thode 2007).</p>
|
||||
@@ -1655,7 +1665,7 @@ Note
|
||||
</section>
|
||||
<section id="advanced-vector-operations" class="level1" data-number="10">
|
||||
<h1 data-number="10"><span class="header-section-number">10</span> Advanced Vector Operations</h1>
|
||||
<hr>
|
||||
<p>::: {.callout-tip} # Chapter Information</p>
|
||||
<section id="author-3" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-3">Author</h2>
|
||||
<p> </p>
|
||||
|
||||
92
docs/F6.html
92
docs/F6.html
@@ -330,7 +330,16 @@ gtag('config', 'G-RK9ZLZQ6GL', { 'anonymize_ip': true});
|
||||
<p>Although you now know the most basic fundamentals of Earth Engine, there is still much more that can be done. The Part presents some advanced topics that can help expand your skill set for doing larger and more complex projects. These include tools for sharing code among users, scaling up with efficient project design, creating apps for non-expert users, and combining R with other information processing platforms.</p>
|
||||
<section id="advanced-raster-visualization" class="level1" data-number="8">
|
||||
<h1 data-number="8"><span class="header-section-number">8</span> Advanced Raster Visualization</h1>
|
||||
<hr>
|
||||
<div class="callout-tip callout callout-style-default callout-captioned">
|
||||
<div class="callout-header d-flex align-content-center">
|
||||
<div class="callout-icon-container">
|
||||
<i class="callout-icon"></i>
|
||||
</div>
|
||||
<div class="callout-caption-container flex-fill">
|
||||
Chapter Information
|
||||
</div>
|
||||
</div>
|
||||
<div class="callout-body-container callout-body">
|
||||
<section id="author" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author">Author</h2>
|
||||
<p>Gennadii Donchyts, Fedor Baart</p>
|
||||
@@ -357,9 +366,10 @@ gtag('config', 'G-RK9ZLZQ6GL', { 'anonymize_ip': true});
|
||||
<li>Inspect an Image and an ImageCollection, as well as their properties (Chap. F4.1).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory">Introduction to Theory</h2>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
<section id="introduction" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction">Introduction</h2>
|
||||
<p>Visualization is the step to transform data into a visual representation. You make a visualization as soon as you add your first layer to your map in Google Earth Engine. Sometimes you just want to have a first look at a dataset during the exploration phase. But as you move towards the dissemination phase, where you want to spread your results, it is good to think about a more structured approach to visualization. A typical workflow for creating visualization consists of the following steps:</p>
|
||||
<ul>
|
||||
<li>Defining the story (what is the message?)</li>
|
||||
@@ -951,7 +961,16 @@ Note
|
||||
</section>
|
||||
<section id="collaborating-in-earth-engine-with-scripts-and-assets" class="level1" data-number="9">
|
||||
<h1 data-number="9"><span class="header-section-number">9</span> Collaborating in Earth Engine with Scripts and Assets</h1>
|
||||
<hr>
|
||||
<div class="callout-tip callout callout-style-default callout-captioned">
|
||||
<div class="callout-header d-flex align-content-center">
|
||||
<div class="callout-icon-container">
|
||||
<i class="callout-icon"></i>
|
||||
</div>
|
||||
<div class="callout-caption-container flex-fill">
|
||||
Chapter Information
|
||||
</div>
|
||||
</div>
|
||||
<div class="callout-body-container callout-body">
|
||||
<section id="author-1" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-1">Author</h2>
|
||||
<p>Sabrina H. Szeto</p>
|
||||
@@ -981,9 +1000,10 @@ Note
|
||||
<li>Sign up for an Earth Engine account, open the Code Editor, and save your script (Chap. F1.0).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory-1" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory-1">Introduction to Theory</h2>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
<section id="introduction-1" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-1">Introduction</h2>
|
||||
<p>Many people find themselves needing to share a script when they encounter a problem; they wish to share the script with someone else so they can ask a question. When this occurs, sharing a link to the script often suffices. The other person can then make comments or changes before sending a new link to the modified script.</p>
|
||||
<p>If you have included any assets from the Asset Manager in your script, you will also need to share these assets in order for your script to work for your colleague. The same goes for sharing assets to be displayed in an app.</p>
|
||||
<p>Another common situation involves collaborating with others on a project. They may have some scripts they have written that they want to reuse or modify for the new project. Alternatively, several people might want to work on the same script together. For this situation, sharing a repository would be the best way forward; team members will be able to see who made what changes to a script and even revert to a previous version.</p>
|
||||
@@ -1210,7 +1230,16 @@ Map.addLayer(composite, {<br>
|
||||
</section>
|
||||
<section id="scaling-up-in-earth-engine" class="level1" data-number="10">
|
||||
<h1 data-number="10"><span class="header-section-number">10</span> Scaling Up in Earth Engine</h1>
|
||||
<hr>
|
||||
<div class="callout-tip callout callout-style-default callout-captioned">
|
||||
<div class="callout-header d-flex align-content-center">
|
||||
<div class="callout-icon-container">
|
||||
<i class="callout-icon"></i>
|
||||
</div>
|
||||
<div class="callout-caption-container flex-fill">
|
||||
Chapter Information
|
||||
</div>
|
||||
</div>
|
||||
<div class="callout-body-container callout-body">
|
||||
<section id="author-2" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-2">Author</h2>
|
||||
<p>Jillian M. Deines, Stefania Di Tommaso, Nicholas Clinton, Noel Gorelick </p>
|
||||
@@ -1238,9 +1267,10 @@ Map.addLayer(composite, {<br>
|
||||
<li>Use the require function to load code from existing modules (Chap. F6.1).</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory-2" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory-2">Introduction to Theory</h2>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
<section id="introduction-2" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-2">Introduction</h2>
|
||||
<p>Parts F1–F5 of this book have covered key remote sensing concepts and demonstrated how to implement them in Earth Engine. Most exercises have used local-scale examples to enhance understanding and complete tasks within a class-length time period. But Earth Engine’s power comes from its scalability—the ability to apply geospatial processing across large areas and many years.</p>
|
||||
<p>How we go from small to large scales is influenced by Earth Engine’s design. Earth Engine runs on many individual computer servers, and its functions are designed to split up processing onto these servers. This chapter focuses on common approaches to implement large jobs within Earth Engine’s constraints. To do so, we first discuss Earth Engine’s underlying infrastructure to provide context for existing limits. We then cover four core concepts for scaling:</p>
|
||||
<ol type="1">
|
||||
@@ -1701,7 +1731,16 @@ Note
|
||||
</section>
|
||||
<section id="sharing-work-in-earth-engine-basic-ui-and-apps" class="level1" data-number="11">
|
||||
<h1 data-number="11"><span class="header-section-number">11</span> Sharing Work in Earth Engine: Basic UI and Apps</h1>
|
||||
<hr>
|
||||
<div class="callout-tip callout callout-style-default callout-captioned">
|
||||
<div class="callout-header d-flex align-content-center">
|
||||
<div class="callout-icon-container">
|
||||
<i class="callout-icon"></i>
|
||||
</div>
|
||||
<div class="callout-caption-container flex-fill">
|
||||
Chapter Information
|
||||
</div>
|
||||
</div>
|
||||
<div class="callout-body-container callout-body">
|
||||
<section id="author-3" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-3">Author</h2>
|
||||
<p>Qiusheng Wu</p>
|
||||
@@ -1730,9 +1769,10 @@ Note
|
||||
<li>Use the basic functions and logic of Python.</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory-3" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory-3">Introduction to Theory</h2>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
<section id="introduction-3" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-3">Introduction</h2>
|
||||
<p>Earth Engine has a user interface API that allows users to build and publish interactive web apps directly from the JavaScript Code Editor. Many readers will have encountered a call to ui.Chart in other chapters, but much more interface functionality is available. In particular, users can utilize the ui functions to construct an entire graphical user interface (GUI) for their Earth Engine script. The GUI may include simple widgets (e.g., labels, buttons, checkboxes, sliders, text boxes) as well as more complex widgets (e.g., charts, maps, panels) for controlling the GUI layout. A complete list of the ui widgets and more information about panels can be found at the links below. Once a GUI is constructed, users can publish the App from the JavaScript Code Editor by clicking the Apps button above the script panel in the Code Editor.</p>
|
||||
<ul>
|
||||
<li>Widgets: <a href="https://www.google.com/url?q=https://developers.google.com/earth-engine/guides/ui_widgets&sa=D&source=editors&ust=1671458841273029&usg=AOvVaw10aLP4KU7kHJTwcnM5Pr4-">https://developers.google.com/earth-engine/guides/ui_widgets</a></li>
|
||||
@@ -2078,8 +2118,16 @@ Note
|
||||
<li>Earthengine-apps: <a href="https://www.google.com/url?q=https://github.com/giswqs/earthengine-apps&sa=D&source=editors&ust=1671458841358120&usg=AOvVaw2XD4jjXV9SfPmaC-oLbstc">https://github.com/giswqs/earthengine-apps</a> </li>
|
||||
</ul>
|
||||
<p>Chapter F6.4: Combining R and Earth Engine</p>
|
||||
<hr>
|
||||
</section>
|
||||
<div class="callout-tip callout callout-style-default callout-captioned">
|
||||
<div class="callout-header d-flex align-content-center">
|
||||
<div class="callout-icon-container">
|
||||
<i class="callout-icon"></i>
|
||||
</div>
|
||||
<div class="callout-caption-container flex-fill">
|
||||
Chapter Information
|
||||
</div>
|
||||
</div>
|
||||
<div class="callout-body-container callout-body">
|
||||
<section id="author-4" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="author-4">Author</h2>
|
||||
<p> </p>
|
||||
@@ -2109,9 +2157,11 @@ Note
|
||||
<li>Create Python virtual environments.</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="introduction-to-theory-4" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-to-theory-4">Introduction to Theory</h2>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="introduction-4" class="level2 unlisted unnumbered">
|
||||
<h2 class="unlisted unnumbered anchored" data-anchor-id="introduction-4">Introduction</h2>
|
||||
<p>R is a popular programming language established in statistical science with large support in reproducible research, geospatial analysis, data visualization, and much more. To get started with R, you will need to satisfy some extra software requirements. First, install an up-to-date R version (at least 4.0) in your work environment. The installation procedure will vary depending on your operating system (i.e., Windows, Mac, or Linux). Hands-On Programming with R (Garrett Grolemund 2014, Appendix A) explains step by step how to proceed. We strongly recommend that Windows users install Rtools to avoid compiling external static libraries.</p>
|
||||
<p>If you are new to R, a good starting point is the book Geocomputation with R (Lovelace et al. 2019) or Spatial Data Science with Application in R (Pebesma and Bivand 2021). In addition, we recommend using an integrated development environment (e.g., Rstudio) or a code editor (e.g., Visual Studio Code) to create a suitable setting to display and interact with R objects.</p>
|
||||
<p>The following R packages must be installed (find more information in the R manual) in order to go through the practicum section.</p>
|
||||
|
||||
1827
docs/search.json
1827
docs/search.json
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user