From 7d9070f285c89dbea667cf73e28e1da94dc4baad Mon Sep 17 00:00:00 2001 From: Kata Martin Date: Wed, 23 Mar 2022 08:55:00 -0700 Subject: [PATCH 1/2] Use new Figure component --- package-lock.json | 16 +- package.json | 2 +- posts/climate-trace-release.md | 40 ++-- posts/climate-trace-release/figure.js | 3 - posts/open-lidar-biomass.md | 44 ++-- posts/open-lidar-biomass/figure.js | 221 +++++++++--------- posts/soil-protocols-added.md | 46 ++-- .../recommendation-table.js | 3 - posts/soil-protocols-added/score-summary.js | 2 +- posts/ton-year-ncx.md | 14 +- posts/ton-year-ncx/table-hundred.js | 2 - posts/ton-year-ncx/table-thousand.js | 2 - 12 files changed, 193 insertions(+), 202 deletions(-) diff --git a/package-lock.json b/package-lock.json index b68a8af..87c8dac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@carbonplan/charts": "^2.7.0", "@carbonplan/colormaps": "^3.0.1", - "@carbonplan/components": "^11.2.3", + "@carbonplan/components": "^11.5.0", "@carbonplan/icons": "^1.0.0", "@carbonplan/layouts": "^1.1.3", "@carbonplan/maps": "^1.2.0", @@ -405,9 +405,9 @@ } }, "node_modules/@carbonplan/components": { - "version": "11.2.3", - "resolved": "https://registry.npmjs.org/@carbonplan/components/-/components-11.2.3.tgz", - "integrity": "sha512-ja2UcX3Bbwq2cKgsu+iRxjcOGc+1WH2te6Q1mM2gpvNfaOqGxCoDsREVdggyFOTWOASL99NWS1inoWh5OahNKA==", + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/@carbonplan/components/-/components-11.5.0.tgz", + "integrity": "sha512-1oIWV6aXVJACQ+JpGtuijNx/LL2Sv5/SG3EzETqZUofGxgsgXP14AKLo15PLaw2NyCjOcsIaI3qipJ4WWLErAg==", "dependencies": { "@carbonplan/emoji": "^1.0.0", "@carbonplan/icons": "^1.0.0", @@ -415,7 +415,7 @@ }, "peerDependencies": { "@emotion/react": "^11.1.5", - "next": "^10.1.3 || ^11.0.1 || || ^12.0.4", + "next": "^10.1.3 || ^11.0.1 || ^12.0.4", "react": "^16.14.0 || ^17.0.2", "react-dom": "^16.14.0 || ^17.0.2", "theme-ui": ">=0.11.1" @@ -9573,9 +9573,9 @@ } }, "@carbonplan/components": { - "version": "11.2.3", - "resolved": "https://registry.npmjs.org/@carbonplan/components/-/components-11.2.3.tgz", - "integrity": "sha512-ja2UcX3Bbwq2cKgsu+iRxjcOGc+1WH2te6Q1mM2gpvNfaOqGxCoDsREVdggyFOTWOASL99NWS1inoWh5OahNKA==", + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/@carbonplan/components/-/components-11.5.0.tgz", + "integrity": "sha512-1oIWV6aXVJACQ+JpGtuijNx/LL2Sv5/SG3EzETqZUofGxgsgXP14AKLo15PLaw2NyCjOcsIaI3qipJ4WWLErAg==", "requires": { "@carbonplan/emoji": "^1.0.0", "@carbonplan/icons": "^1.0.0", diff --git a/package.json b/package.json index 035780c..7f5a9d3 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "dependencies": { "@carbonplan/charts": "^2.7.0", "@carbonplan/colormaps": "^3.0.1", - "@carbonplan/components": "^11.2.3", + "@carbonplan/components": "^11.5.0", "@carbonplan/icons": "^1.0.0", "@carbonplan/layouts": "^1.1.3", "@carbonplan/maps": "^1.2.0", diff --git a/posts/climate-trace-release.md b/posts/climate-trace-release.md index 762fde7..24f5a7f 100644 --- a/posts/climate-trace-release.md +++ b/posts/climate-trace-release.md @@ -1,5 +1,5 @@ -import { Link, FigureCaption } from '@carbonplan/components' -import Figure from './climate-trace-release/figure' +import { Link, Figure, FigureCaption } from '@carbonplan/components' +import Map from './climate-trace-release/figure' export const meta = { version: '1.0.0', @@ -17,24 +17,26 @@ In early 2020, CarbonPlan joined the [Climate TRACE](https://www.climatetrace.or For the initial release of the Climate TRACE platform we used established methods to estimate gross emissions from stand-replacing forest disturbances. Our work closely followed the approach of [Zarin et al. (2016)](https://doi.org/10.1111/gcb.13153) and is similar to that of the recent [Harris et al. (2021)](https://doi.org/10.1038/s41558-020-00976-6) paper, the results of which are hosted by the [Global Forest Watch](https://www.globalforestwatch.org/) platform. Our analysis created a data product of annual emissions for each 30 m x 30 m forest pixel across the globe from 2001 through 2020. The primary differences between our implementation for the Climate TRACE platform and the original data from Zarin et al. (2016) are an extension through 2020 and the complete coverage of all global forested areas. -
- - Cumulative emissions from forests (2001 - 2020). Pixels are 1º x 1º. Open the{' '} - + + + Cumulative emissions from forests (2001 - 2020). Pixels are 1º x 1º. Open the{' '} + - interactive - {' '} - version to explore more. - + }} + href='/research/forest-carbon' + > + interactive + {' '} + version to explore more. + +
Our complete methods are documented in detail [here](https://docs.google.com/document/d/e/2PACX-1vSVPWE8BOOqu_G9_bdioMquhoIOTnJ4UOYeJeCpEr9RMBrazStaIxQIJtrt8DzVBMZb4waxA9fLyyqr/pub) and all of our source code is available on [GitHub](https://github.com/carbonplan/trace). The full data product is visible via an interactive [webmap](https://carbonplan.org/research/forest-carbon). Interested users can also check out a sample [jupyter notebook](https://aws-uswest2-binder.pangeo.io/v2/gh/carbonplan/trace/HEAD?urlpath=lab/tree/notebooks%2Fblogpost_sample_notebook.ipynb) to inspect the resulting publicly-available, cloud-based emissions archive at the 30 m scale and visualize the data like the map above. diff --git a/posts/climate-trace-release/figure.js b/posts/climate-trace-release/figure.js index a75e938..d87f520 100644 --- a/posts/climate-trace-release/figure.js +++ b/posts/climate-trace-release/figure.js @@ -89,10 +89,7 @@ const Figure = () => { return ( - - Example LiDAR return signal, which could result in two different tree heights - depending on the choice of methods. The y-axis represents distance from the - satellite where the LiDAR instrument is located. A higher value (lower - position) on the y-axis indicates a distance farther from the satellite, and - thus closer to the center of earth. (Note that for simplicity we show the top - of the y-axis as 0. The actual distance from the satellite can be calculated - by adding ~600,000 meters). A higher value on the x-axis indicates a larger - return signal strength at that distance, implying high reflection and more - tree surface area at that height. The raw LiDAR return data are plotted in - dark gray dots and a fitted smooth curve is plotted in white. In this example, - using either of the two definitions of ground peak lead to different - calculated magnitudes of Max Vegetation Height (25% less when using - alternative ground peak in this example). In general, allometric equations - relying on Max Vegetation Height as an input would estimate higher - biomass (if using the yellow ground peak) or lower biomass (if using the pink - alternative ground peak).{' '} - +
+ + + Example LiDAR return signal, which could result in two different tree heights + depending on the choice of methods. The y-axis represents distance from the + satellite where the LiDAR instrument is located. A higher value (lower + position) on the y-axis indicates a distance farther from the satellite, and + thus closer to the center of earth. (Note that for simplicity we show the top + of the y-axis as 0. The actual distance from the satellite can be calculated + by adding ~600,000 meters). A higher value on the x-axis indicates a larger + return signal strength at that distance, implying high reflection and more + tree surface area at that height. The raw LiDAR return data are plotted in + dark gray dots and a fitted smooth curve is plotted in white. In this example, + using either of the two definitions of ground peak lead to different + calculated magnitudes of Max Vegetation Height (25% less when using + alternative ground peak in this example). In general, allometric equations + relying on Max Vegetation Height as an input would estimate higher + biomass (if using the yellow ground peak) or lower biomass (if using the pink + alternative ground peak).{' '} + +
## Why the details matter diff --git a/posts/open-lidar-biomass/figure.js b/posts/open-lidar-biomass/figure.js index c2309fb..6b22dbf 100644 --- a/posts/open-lidar-biomass/figure.js +++ b/posts/open-lidar-biomass/figure.js @@ -105,127 +105,116 @@ const TreeLines = () => { const Figure = () => { return ( - - - - - - - - - LiDAR - -  return - - - Distance from satellite - - - d % RANGE[1]} /> - - + + + + + + + LiDAR + +  return + + + Distance from satellite + + + d % RANGE[1]} /> + + + + d[1] > RANGE[1])} + color='secondary' /> - - d[1] > RANGE[1])} - color='secondary' - /> + d[1] > RANGE[1])} + width={2} + color='primary' + /> + {LINES.map(([key, color]) => ( d[1] > RANGE[1])} - width={2} - color='primary' - /> - {LINES.map(([key, color]) => ( - - ))} - - - - - - - - - - - - - - {LINES.map(([key, color, label]) => ( - + /> ))} - - - - - + + + + + + + + + + + + + + {LINES.map(([key, color, label]) => ( + + ))} + +
+ + ) } diff --git a/posts/soil-protocols-added.md b/posts/soil-protocols-added.md index 45be0d1..efe90fc 100644 --- a/posts/soil-protocols-added.md +++ b/posts/soil-protocols-added.md @@ -1,5 +1,5 @@ import { Box } from 'theme-ui' -import { Link, FigureCaption } from '@carbonplan/components' +import { Link, Figure, FigureCaption } from '@carbonplan/components' import RecommendationTable from './soil-protocols-added/recommendation-table' import ScoreSummary from './soil-protocols-added/score-summary' @@ -77,29 +77,33 @@ This protocol received a high score for safeguards. The Government of Alberta is Combining the new analysis with our results from before, we can look at all the protocols we have analyzed together. - - - Summary table of our results. Each protocol is a row. The{' '} - - * - {' '} - indicates new additions. The first four columns show scores along four - individual metrics (each on a scale from 1 to 3) and the final column shows - the overall rating (on a scale from 1 to 5). For more details, check out the{' '} - - interactive version - {' '} - of this table. Abbreviations: Grazing (G), Compost (C), Cropping (Cr), - Improved Agriculture (IA), Sustainable Agriculture (SA), Fire + Grazing (FG), - Austrailia (Aus), Alberta (Alb) - +
+ + + Summary table of our results. Each protocol is a row. The{' '} + + * + {' '} + indicates new additions. The first four columns show scores along four + individual metrics (each on a scale from 1 to 3) and the final column shows + the overall rating (on a scale from 1 to 5). For more details, check out the{' '} + + interactive version + {' '} + of this table. Abbreviations: Grazing (G), Compost (C), Cropping (Cr), + Improved Agriculture (IA), Sustainable Agriculture (SA), Fire + Grazing (FG), + Austrailia (Aus), Alberta (Alb) + +
With the addition of these three protocols, our recommendations to buyers remain the same: - +
+ +
The only amendment to these recommendations is the addition of the Australia measurement protocol to the list of rigorous, sampling-based quantification methods. This protocol received the highest overall ranking of any protocol we reviewed. diff --git a/posts/soil-protocols-added/recommendation-table.js b/posts/soil-protocols-added/recommendation-table.js index d206698..2006aef 100644 --- a/posts/soil-protocols-added/recommendation-table.js +++ b/posts/soil-protocols-added/recommendation-table.js @@ -30,9 +30,6 @@ const RecommendationTable = () => { [6, 1, 1, 1], [6, 5, 5, 5], ]} - sx={{ - my: [6, 6, 6, 7], - }} /> ) } diff --git a/posts/soil-protocols-added/score-summary.js b/posts/soil-protocols-added/score-summary.js index bee124a..b4d82c0 100644 --- a/posts/soil-protocols-added/score-summary.js +++ b/posts/soil-protocols-added/score-summary.js @@ -58,7 +58,7 @@ const star = (name) => { const ScoreSummary = () => { return ( - + Rigor diff --git a/posts/ton-year-ncx.md b/posts/ton-year-ncx.md index c5ba991..105e15f 100644 --- a/posts/ton-year-ncx.md +++ b/posts/ton-year-ncx.md @@ -1,4 +1,4 @@ -import { TableCaption } from '@carbonplan/components' +import { Figure, TableCaption } from '@carbonplan/components' import TableHundred from './ton-year-ncx/table-hundred' import TableThousand from './ton-year-ncx/table-thousand' @@ -38,11 +38,15 @@ According to NCX’s methods, the total impact of 1 tCO₂ emitted today (at tim Tables 1 and 2 report these values for a timeframe of 100 years and 1000 years, respectively. The tables also show how the difference in ton-year impacts between emissions at time t=0 and t=1 translates into the ton-year benefit of delay. The equivalence ratio is calculated by dividing the ton-year impact of an emission at t=0 by the ton-year benefit of delay. - -Calculations for a 100-year timeframe. +
+ + Calculations for a 100-year timeframe. +
- -Calculations for a 1000-year timeframe. +
+ + Calculations for a 1000-year timeframe. +
As you can see, the equivalence ratio expands more than tenfold (from 129.61 to 1322.20) when undiscounted physical impacts are compared across 100- and 1000-year timeframes, respectively. In contrast, when using discounted impacts, the equivalence ratio is almost constant across these two distinct timeframes (30.08 versus 30.81). diff --git a/posts/ton-year-ncx/table-hundred.js b/posts/ton-year-ncx/table-hundred.js index 15a000a..c128d1c 100644 --- a/posts/ton-year-ncx/table-hundred.js +++ b/posts/ton-year-ncx/table-hundred.js @@ -16,8 +16,6 @@ const table = [ const TableHundred = () => { return ( { return (
Date: Wed, 23 Mar 2022 08:58:39 -0700 Subject: [PATCH 2/2] format --- posts/climate-trace-release.md | 3 ++- posts/open-lidar-biomass.md | 32 ++++++++++++++++---------------- posts/soil-protocols-added.md | 4 ++-- posts/ton-year-ncx.md | 4 +++- 4 files changed, 23 insertions(+), 20 deletions(-) diff --git a/posts/climate-trace-release.md b/posts/climate-trace-release.md index 24f5a7f..874971d 100644 --- a/posts/climate-trace-release.md +++ b/posts/climate-trace-release.md @@ -20,7 +20,8 @@ For the initial release of the Climate TRACE platform we used established method
- Cumulative emissions from forests (2001 - 2020). Pixels are 1º x 1º. Open the{' '} + Cumulative emissions from forests (2001 - 2020). Pixels are 1º x 1º. Open + the{' '} - Example LiDAR return signal, which could result in two different tree heights - depending on the choice of methods. The y-axis represents distance from the - satellite where the LiDAR instrument is located. A higher value (lower - position) on the y-axis indicates a distance farther from the satellite, and - thus closer to the center of earth. (Note that for simplicity we show the top - of the y-axis as 0. The actual distance from the satellite can be calculated - by adding ~600,000 meters). A higher value on the x-axis indicates a larger - return signal strength at that distance, implying high reflection and more - tree surface area at that height. The raw LiDAR return data are plotted in - dark gray dots and a fitted smooth curve is plotted in white. In this example, - using either of the two definitions of ground peak lead to different - calculated magnitudes of Max Vegetation Height (25% less when using - alternative ground peak in this example). In general, allometric equations - relying on Max Vegetation Height as an input would estimate higher - biomass (if using the yellow ground peak) or lower biomass (if using the pink - alternative ground peak).{' '} + Example LiDAR return signal, which could result in two different tree + heights depending on the choice of methods. The y-axis represents distance + from the satellite where the LiDAR instrument is located. A higher value + (lower position) on the y-axis indicates a distance farther from the + satellite, and thus closer to the center of earth. (Note that for simplicity + we show the top of the y-axis as 0. The actual distance from the satellite + can be calculated by adding ~600,000 meters). A higher value on the x-axis + indicates a larger return signal strength at that distance, implying high + reflection and more tree surface area at that height. The raw LiDAR return + data are plotted in dark gray dots and a fitted smooth curve is plotted in + white. In this example, using either of the two definitions of ground peak + lead to different calculated magnitudes of Max Vegetation Height (25% + less when using alternative ground peak in this example). In general, + allometric equations relying on Max Vegetation Height as an input + would estimate higher biomass (if using the yellow ground peak) or lower + biomass (if using the pink alternative ground peak).{' '}
diff --git a/posts/soil-protocols-added.md b/posts/soil-protocols-added.md index efe90fc..68411cf 100644 --- a/posts/soil-protocols-added.md +++ b/posts/soil-protocols-added.md @@ -94,8 +94,8 @@ Combining the new analysis with our results from before, we can look at all the interactive version {' '} of this table. Abbreviations: Grazing (G), Compost (C), Cropping (Cr), - Improved Agriculture (IA), Sustainable Agriculture (SA), Fire + Grazing (FG), - Austrailia (Aus), Alberta (Alb) + Improved Agriculture (IA), Sustainable Agriculture (SA), Fire + Grazing + (FG), Austrailia (Aus), Alberta (Alb) diff --git a/posts/ton-year-ncx.md b/posts/ton-year-ncx.md index 105e15f..085c983 100644 --- a/posts/ton-year-ncx.md +++ b/posts/ton-year-ncx.md @@ -45,7 +45,9 @@ Tables 1 and 2 report these values for a timeframe of 100 years and 1000 years,
- Calculations for a 1000-year timeframe. + + Calculations for a 1000-year timeframe. +
As you can see, the equivalence ratio expands more than tenfold (from 129.61 to 1322.20) when undiscounted physical impacts are compared across 100- and 1000-year timeframes, respectively. In contrast, when using discounted impacts, the equivalence ratio is almost constant across these two distinct timeframes (30.08 versus 30.81).