|
6 | 6 | "source": [ |
7 | 7 | "# Analysis Ready Data Tutorial\n", |
8 | 8 | "\n", |
9 | | - "Time-series analysis (e.g. change detection and trend detection) is a powerful application of satellite imagery. However, a great deal of processing is required to prepare imagery for analysis. Analysis Ready Data, preprocessed time-series stacks of overhead imagery, allow for time-series analysis without any additional processing of the imagery. See [Analysis Data Defined](https://github.com/planetlabs/notebooks/issues/126) for an excellent introduction and discussion on ARD.\n", |
| 9 | + "Time-series analysis (e.g. change detection and trend detection) is a powerful application of satellite imagery. However, a great deal of processing is required to prepare imagery for analysis. Analysis Ready Data (ARD), preprocessed time-series stacks of overhead imagery, allow for time-series analysis without any additional processing of the imagery. See [Analysis Data Defined](https://medium.com/planet-stories/analysis-ready-data-defined-5694f6f48815) for an excellent introduction and discussion on ARD.\n", |
10 | 10 | "\n", |
11 | | - "This tutorial shows how [Planet APIs](https://developers.planet.com/docs/apis/) can simplify production of analysis-ready data (ARD) by working through two real-world use cases. This tutorial is targeted to users who have little to no geospatial knowledge but have experience working with APIs. The goal of this tutorial is to teach the user the how and whys of using the Data and Orders APIs to create and interpret ARD for both use cases. The use cases addressed in this tutorial are:\n", |
| 11 | + "This tutorial shows how [Planet APIs](https://developers.planet.com/docs/apis/) can simplify production of ARD by working through two real-world use cases. This tutorial is targeted to users who have little to no geospatial knowledge but have experience working with APIs. The goal of this tutorial is to teach the user the how and whys of using the Data and Orders APIs to create and interpret ARD for both use cases. The use cases addressed in this tutorial are:\n", |
12 | 12 | "\n", |
13 | 13 | "* As a software engineer at an ag-tech company, I'd like to be able to order Planet imagery programmatically in a way that enables the data scientist at my organization to create time-series algorithms (e.g. monitoring ndvi curves over time) without further data cleaning and processing.\n", |
14 | 14 | "* As a tropical forest monitoring analyst, I'd like to create an imagery pipeline that delivers analysis-ready imagery over a protected area so I can create simple change detection (ndvi_xdate - ndvi_ydate) analyses. I'd like to do minimal custom (non-Planet) data processing to get the imagery in a format that supports a change-detection analysis because my technical skills are limited." |
|
26 | 26 | "\n", |
27 | 27 | "The first step in using the Data API is identifying the search criteria. This is specifying answers to the following questions regarding the use case time-series analysis:\n", |
28 | 28 | "* What is the time range?\n", |
| 29 | + "* What product item type is desired?\n", |
29 | 30 | "* What is the area of interest (geographic region)?\n", |
30 | 31 | "* What percentage of pixels need to be usable?\n", |
31 | 32 | "* etc.\n", |
32 | 33 | "\n", |
33 | | - "While time range is likely pretty trivial to determine, area of interest and usable pixels may take a little bit of work. Let's dive into each further\n", |
| 34 | + "While time range is likely pretty trivial to determine, product item, area of interest, and usable pixels may take a little bit of work. Let's dive into each further\n", |
| 35 | + "\n", |
| 36 | + "#### Product Item Type\n", |
| 37 | + "\n", |
| 38 | + "The [product item type](https://developers.planet.com/docs/data/items-assets/) refers to the sensor source (aka satellite type) and basic processing desired. This decision is highly dependent on application, as coverage, revisit rate, spectral bands, and resolution differ between products.\n", |
34 | 39 | "\n", |
35 | 40 | "#### Area of Interest\n", |
36 | 41 | "\n", |
37 | | - "The area of interest is the geographic region for the analysis, given as geojson. If you are familiar with JSON, the format of GeoJSON will likely be easy to grasp. According to <geojson.org>, \"GeoJSON is a format for encoding a variety of geographic data structures.\" The specific geographic data structure we are interested is a `Polygon`. The [GeoJSON wikipedia page](https://en.wikipedia.org/wiki/GeoJSON) gives some great examples of the data structures for the various GeoJSON data structures. \n", |
| 42 | + "The area of interest is the geographic region for the analysis, given as GeoJSON. If you are familiar with JSON, the format of GeoJSON will likely be easy to grasp. According to <geojson.org>, \"GeoJSON is a format for encoding a variety of geographic data structures.\" The specific geographic data structure we are interested is a `Polygon`. The [GeoJSON wikipedia page](https://en.wikipedia.org/wiki/GeoJSON) gives some great examples of the data structures for the various GeoJSON data structures. \n", |
38 | 43 | "\n", |
39 | | - "Some care needs to be given to describing the [position](https://tools.ietf.org/html/rfc7946#section-3.1.1) for each coordinate in a GeoJSON geometry. Each position is specified as `(longitude, latitude)` or `(easting, northing)` (order really matters here!). Also, this may be a surprise, but the same point on earth can have different `(longitude, latitude)` values based on the spatial reference system. Basically, a spatial reference system describes how the surface of the earth (quite three-dimensional) can be described in two dimensions (the `projection` in geospatial terminology) and the location of the `origin` (the `datum` in geospatial terminology). There is a rich area of discovery, discussion, and even a little [teasing](https://xkcd.com/977/) (thanks xkcd!) in the world of spatial reference systems. However, only one spatial reference system is supported by GeoJSON, and it is [wgs-84](https://spatialreference.org/ref/epsg/wgs-84/).\n", |
| 44 | + "Some care needs to be given to describing the [position](https://tools.ietf.org/html/rfc7946#section-3.1.1) for each coordinate in a GeoJSON geometry. Each position is specified as `(longitude, latitude)` or `(easting, northing)` (order really matters here!). Also, this may be a surprise, but the same point on earth can have different `(longitude, latitude)` values based on the spatial reference system. Basically, a spatial reference system describes where something is in the real world. But there are thousands of different spatial reference systems. These are separated into two categories: geographic and projected. Geographic coordinate systems model the earth as an ellipsoid (this model is called the `datum`) and describe positions on the surface of the earth (coordinates) in terms of the prime meridian and angle of measure. Projected coordinate systems take this a step further by projecting the geographic coordinates (quite three-dimensional) into two dimensions (the `projection`). Different projections preserve different properties, such as area, angles, or direction for north. There is a rich area of discovery, discussion, and even a little [teasing](https://xkcd.com/977/) (thanks xkcd!) in the world of spatial reference systems.\n", |
40 | 45 | "\n", |
41 | | - "The easiest way to define an aoi is to draw it in [Planet Explorer](https://www.planet.com/explorer) and click the little button \"Download AOI as GeoJSON.\"\n", |
| 46 | + "GeoJSON only supports one spatial reference system, [WGS84](https://spatialreference.org/ref/epsg/wgs-84/). This is a geographic coordinate system describing locations in latitude, longitude. However, many web mapping applications use the Web Mercator projected coordinate system to to describe locations. Confusingly, Web Mercator also describes locations in latitude, longitude. But a `(longitude, latitude)` GeoJSON position given in Web Mercator will **not** end up where you expect if it is not first projected into WGS84. The easiest way to define an aoi that is described in WGS84 is to draw it in [Planet Explorer](https://www.planet.com/explorer) and click the little button \"Download AOI as GeoJSON.\"\n", |
42 | 47 | "\n", |
43 | 48 | "#### Usable Pixels\n", |
44 | 49 | "\n", |
45 | | - "Working Here\n", |
46 | | - "\n", |
| 50 | + "Taking pictures of the earth from space ain't easy. There are a lot of steps and a lot of things have to go right to get a clear shot. Therefore, not every pixel in every image taken from space is useful for analysis. For one, images taken from space are projected into a spatial reference system (discussed briefly above), a process that introduces some NoData (aka outside of the image footprint) pixels into the resulting image. Additionally, clouds cover a great deal of the earth and create cloudy pixels when imaged. While some applications can use cloudy pixels, others cannot. Therefore, the type of pixels that are determined to be 'usable' are often application-specific. To support definition of usable pixels, and filtering based on that definition, Planet provides Usable Data Masks along with Usable Data entries in the imagery metadata. For more details on the Usable Data Mask, check out (Clear for Analysis with Planet’s New Usable Data Masks)[https://www.planet.com/pulse/planets-new-usable-data-masks/]. For more information on the Usable Data metadata entries, see (Usable Data in Planet imagery)[https://developers.planet.com/planetschool/usable-data-in-planet-imagery/].\n", |
47 | 51 | "\n", |
48 | 52 | "### Orders API\n", |
49 | 53 | "\n", |
50 | | - "The core decision around using the orders api is the [product bundle](https://developers.planet.com/docs/orders/product-bundles-reference/) to use. This is the starting point for all processing and there are a lot of options. Once the product is determined, the processing steps (aka tools and toolchains) are defined. Finally, the logistics of the delivery of the imagery are ironed out." |
| 54 | + "The core decision around using the orders api is which [product bundle](https://developers.planet.com/docs/orders/product-bundles-reference/) to use. This is the starting point for all processing and there are a lot of options. Once the product is determined, the processing steps (aka tools and toolchains) are defined. Finally, the logistics of the delivery of the imagery are ironed out.\n", |
| 55 | + "\n", |
| 56 | + "#### Product Bundle\n", |
| 57 | + "\n", |
| 58 | + "To enable time-series analysis, ARD imagery must be processed so that imagery is consistant across days. This means correcting for differences in camera sensitivities, the relative location of the sun, and the atmospheric conditions. The Analytic Radiance (`analytic`) product bundle provides imagery corrected for difference in camera sensitivities and location of the sun (as radiance) and can also remove the effect of the sun's spectrum by applying the `reflectance` (**TODO** check on and update this name) coefficient provided in the imagery metadata. However, the Analytic Surface Reflectance (`analytic_sr`) product bundle also removes the effect of atmospheric conditions. Therefore, the Analytic Surface Reflectance is the ideal product for ARD.\n", |
| 59 | + "\n", |
| 60 | + "#### Tools and Toolchains\n", |
| 61 | + "\n", |
| 62 | + "The [Tools and Toolchains](https://developers.planet.com/docs/orders/tools-toolchains/) functionality in the Orders API are the key to seamlessly creating ARD. Through the API, one can define the pre-processing steps for the data before it is delivered. Given proper definition of the tools and toolchains, data that is delivered is analysis-ready.\n", |
| 63 | + "\n", |
| 64 | + "#### Delivery\n", |
| 65 | + "\n", |
| 66 | + "There are a few options for delivery that cater to different use cases. Imagery can be downloaded directly or delivered to [cloud storage](https://developers.planet.com/docs/orders/ordering-delivery/#delivery-to-cloud-storage). When imagery is downloaded, the user can poll for when the order is ready or notifications ([e-mail](https://developers.planet.com/docs/orders/ordering-delivery/#email-notification) or [webhooks](https://developers.planet.com/docs/orders/ordering-delivery/#using-webhooks)) can be used. Additionally, the imagery can be delivered as a [zip archive](https://developers.planet.com/docs/orders/ordering-delivery/#zipping-results)." |
51 | 67 | ] |
52 | 68 | }, |
| 69 | + { |
| 70 | + "cell_type": "code", |
| 71 | + "execution_count": null, |
| 72 | + "metadata": {}, |
| 73 | + "outputs": [], |
| 74 | + "source": [] |
| 75 | + }, |
53 | 76 | { |
54 | 77 | "cell_type": "code", |
55 | 78 | "execution_count": null, |
|
0 commit comments