SlideShare a Scribd company logo
1 of 22
Visualizing Large Greenhouse Gas Datasets
in the Browser With deck.gl
All Things Open 2022
David Calhoun, Lead Frontend @ MethaneSAT
Slides: bit.ly/deckgl-ato
Code: bit.ly/deckgl-ato-github
Slides: bit.ly/deckgl-ato
MethaneSAT (methanesat.org)
● Subsidiary of the Environmental Defense Fund.
● Launching a satellite 🛰 to get better visibility into worldwide methane
emissions contributing to climate change.
○ Satellite -> Data -> Visualization -> Action. All of these are hard.
● Why methane (CH4)?
○ Cutting methane quickly could slow warming by 30%
○ Flatten the curve! Buys us more time to decarbonize.
Slides: bit.ly/deckgl-ato
deck.gl
● WebGL-powered visualization framework for large-scale datasets.
● History
○ 2015: created for internal use at Uber
○ 2016: open-sourced by Uber
○ 2018: kepler.gl geospatial toolbox announced
○ 2020: moved to Open Governance model under vis.gl umbrella
Slides: bit.ly/deckgl-ato
Is deck.gl right for you?
● Geospatial dataset recommended.
○ Vector ideally (CSV or GeoJSON).
○ For raster data: deck.gl-raster.
● Thousands to millions of points to display.
○ Alternatively, Mapbox GL is also very capable!
● Need for interactivity (e.g. clientside styling, data filtering).
● Need for 3D.
● ⚠️ May not perform well on mobile devices with limited memory.
Slides: bit.ly/deckgl-ato
deck.gl
Integrations:
● React
● Pure JavaScript, TypeScript
● Python
● R (mapdeck)
● C++
● Vega
Map providers:
● Mapbox
● ArcGIS
● CARTO
● Google Maps
Slides: bit.ly/deckgl-ato
deck.gl examples
Slides: bit.ly/deckgl-ato
Let's build!
● Goal: Where are the biggest methane emissions and who is responsible?
● EPA Greenhouse Gas Reporting Program (GHGRP) (units: tons methane
CO2 equivalent)
○ Company estimated emissions reported to the EPA in 2021.
○ ⚠️ Caveat: this data underestimates significantly.
○ ~6,000 data points with metadata (283 KB gzipped down the wire, 727 KB
uncompressed)
● Full code: bit.ly/deckgl-ato-github
Slides: bit.ly/deckgl-ato
import DeckGL from 'deck.gl';
import Map from 'react-map-gl';
...
<DeckGL
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
controller={true}
>
<Map
style={{ width: '100vw', height: '100vh' }}
mapStyle="mapbox://styles/mapbox/light-v10"
mapboxAccessToken={process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}
/>
</DeckGL>
...
Slides: bit.ly/deckgl-ato
Slides: bit.ly/deckgl-ato
import DeckGL, { ScatterplotLayer } from 'deck.gl';
import { registerLoaders } from '@loaders.gl/core';
import { CSVLoader } from '@loaders.gl/csv';
registerLoaders(CSVLoader);
<DeckGL
layers={[
new ScatterplotLayer({
...
id: 'scatterplot-layer',
data: './epa-ch4-2021.csv',
radiusMinPixels: 1,
getPosition: ({ Longitude, Latitude }) => [Longitude, Latitude]
})
]}
...
>
...
Slides: bit.ly/deckgl-ato
Slides: bit.ly/deckgl-ato
import { scaleRadial } from 'd3-scale';
const MAX_METHANE_TONS_CO2EQUIVALENT = 2268589;
const MAX_RADIUS_PIXELS = 25;
const radiusScale = scaleRadial()
.domain([1, MAX_METHANE_TONS_CO2EQUIVALENT])
.rangeRound([1, MAX_RADIUS_PIXELS]);
...
new ScatterplotLayer({
...
radiusUnits: 'pixels',
getRadius: ({ methane }) => radiusScale(methane),
getFillColor: [129, 15, 124],
opacity: 0.4
})
...
Slides: bit.ly/deckgl-ato
Slides: bit.ly/deckgl-ato
import { DataFilterExtension } from '@deck.gl/extensions';
...
new ScatterplotLayer({
...
getFilterValue: ({ methane }) => methane,
filterRange: [500000, MAX_METHANE_TONS_CO2EQUIVALENT],
extensions: [new DataFilterExtension({ filterSize: 1 })]
})
...
Slides: bit.ly/deckgl-ato
Slides: bit.ly/deckgl-ato
const [lowerRange, setLowerRange] = useState(1);
...
new ScatterplotLayer({
...
filterRange: [lowerRange, MAX_METHANE_TONS_CO2EQUIVALENT],
updateTriggers: {
filterRange: lowerRange
}
})
...
</DeckGL>
<input
type="range"
onChange={(event) => setLowerRange(parseInt(event.target.value))}
min={1}
max={MAX_METHANE_TONS_CO2EQUIVALENT}
value={lowerRange}
/>
Slides: bit.ly/deckgl-ato
Slides: bit.ly/deckgl-ato
const [pointDetails, setPointDetails] = useState('');
...
new ScatterplotLayer({
...
pickable: true,
highlightColor: [191, 211, 230],
autoHighlight: true,
onHover: (data) => {
const { industry, facility, methane } = data.object;
setPointDetails(`Methane Tons CO2 equivalent: ${methane}n
Industry: ${industry}n
Facility: ${facility}`);
}
})
...
</DeckGL>
<div className="point-details">{pointDetails}</div>
...
Slides: bit.ly/deckgl-ato
Slides: bit.ly/deckgl-ato
Free methane datasets (satellite, light
aircraft)
● Methane Emissions (kg/hr units)
○ MethaneSAT (coming soon)
○ PermianMAP (CSV, Permian Basin)
○ CARB Methane Source Finder (CSV, California)
● Methane Concentrations (ppb units)
○ TROPOMI (netCDF, worldwide)
■ GHGSat's PULSE visualization
● EOG gas flaring sites (VIIRS satellite) (Excel, worldwide)
Slides: bit.ly/deckgl-ato
More Datasets relevant for Greenhouse Gas
(GHG)
● Bottom-up estimate data
○ EPA Greenhouse Gas Reporting Program (GHGRP) (Excel, US)
○ EDGAR (Excel, worldwide)
● Infrastructure context
○ EIA oil and gas basin boundaries (Shapefile, US)
○ HIFLD oil and gas infrastructure (wells, etc) (CSV [+more], US)
David Calhoun
dcalhoun@methanesat.org
@franksvalli
…now go use your knowledge for great things!
Thank you!
Slides: bit.ly/deckgl-ato
Code: bit.ly/deckgl-ato-github

More Related Content

Similar to Visualizing Large Greenhouse Gas Datasets in the Browser With deck.gl

The Ring programming language version 1.9 book - Part 14 of 210
The Ring programming language version 1.9 book - Part 14 of 210The Ring programming language version 1.9 book - Part 14 of 210
The Ring programming language version 1.9 book - Part 14 of 210Mahmoud Samir Fayed
 
Improving Apache Spark Downscaling
 Improving Apache Spark Downscaling Improving Apache Spark Downscaling
Improving Apache Spark DownscalingDatabricks
 
How to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
How to build an ETL pipeline with Apache Beam on Google Cloud DataflowHow to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
How to build an ETL pipeline with Apache Beam on Google Cloud DataflowLucas Arruda
 
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...tdc-globalcode
 
Grails beginners workshop
Grails beginners workshopGrails beginners workshop
Grails beginners workshopJacobAae
 
Performance measurement and tuning
Performance measurement and tuningPerformance measurement and tuning
Performance measurement and tuningAOE
 
ng-grid and a Simple REST API
ng-grid and a Simple REST APIng-grid and a Simple REST API
ng-grid and a Simple REST APIBackand Cohen
 
Part 1: ng-grid and a Simple REST API
Part 1: ng-grid and a Simple REST APIPart 1: ng-grid and a Simple REST API
Part 1: ng-grid and a Simple REST APIreneechemel
 
Le Bourget 2017 - From earth observation to actionable intelligence
Le Bourget 2017 - From earth observation to actionable intelligenceLe Bourget 2017 - From earth observation to actionable intelligence
Le Bourget 2017 - From earth observation to actionable intelligenceLeonardo
 
Cloud Composer workshop at Airflow Summit 2023.pdf
Cloud Composer workshop at Airflow Summit 2023.pdfCloud Composer workshop at Airflow Summit 2023.pdf
Cloud Composer workshop at Airflow Summit 2023.pdfLeah Cole
 
Helm Charts Security 101
Helm Charts Security 101Helm Charts Security 101
Helm Charts Security 101Deep Datta
 
DevFest 2022 - Skaffold 2 Deep Dive Taipei.pdf
DevFest 2022 - Skaffold 2 Deep Dive Taipei.pdfDevFest 2022 - Skaffold 2 Deep Dive Taipei.pdf
DevFest 2022 - Skaffold 2 Deep Dive Taipei.pdfKAI CHU CHUNG
 
MongoDB Europe 2016 - Warehousing MongoDB Data using Apache Beam and BigQuery
MongoDB Europe 2016 - Warehousing MongoDB Data using Apache Beam and BigQueryMongoDB Europe 2016 - Warehousing MongoDB Data using Apache Beam and BigQuery
MongoDB Europe 2016 - Warehousing MongoDB Data using Apache Beam and BigQueryMongoDB
 
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰KAI CHU CHUNG
 
GCP-Professional-Cloud-Developer-Exam-v22.2.1_139-taqwlj.pdf
GCP-Professional-Cloud-Developer-Exam-v22.2.1_139-taqwlj.pdfGCP-Professional-Cloud-Developer-Exam-v22.2.1_139-taqwlj.pdf
GCP-Professional-Cloud-Developer-Exam-v22.2.1_139-taqwlj.pdfssuserc36624
 
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic Training
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic TrainingGCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic Training
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic TrainingSimon Su
 
DVC - Git-like Data Version Control for Machine Learning projects
DVC - Git-like Data Version Control for Machine Learning projectsDVC - Git-like Data Version Control for Machine Learning projects
DVC - Git-like Data Version Control for Machine Learning projectsFrancesco Casalegno
 
WT-4064, Build Rich Applications with HTML5 and WebGL, by Tony Parisi
WT-4064, Build Rich Applications with HTML5 and WebGL, by Tony ParisiWT-4064, Build Rich Applications with HTML5 and WebGL, by Tony Parisi
WT-4064, Build Rich Applications with HTML5 and WebGL, by Tony ParisiAMD Developer Central
 
JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試Simon Su
 

Similar to Visualizing Large Greenhouse Gas Datasets in the Browser With deck.gl (20)

The Ring programming language version 1.9 book - Part 14 of 210
The Ring programming language version 1.9 book - Part 14 of 210The Ring programming language version 1.9 book - Part 14 of 210
The Ring programming language version 1.9 book - Part 14 of 210
 
Improving Apache Spark Downscaling
 Improving Apache Spark Downscaling Improving Apache Spark Downscaling
Improving Apache Spark Downscaling
 
How to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
How to build an ETL pipeline with Apache Beam on Google Cloud DataflowHow to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
How to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
 
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
 
Grails beginners workshop
Grails beginners workshopGrails beginners workshop
Grails beginners workshop
 
Performance measurement and tuning
Performance measurement and tuningPerformance measurement and tuning
Performance measurement and tuning
 
ng-grid and a Simple REST API
ng-grid and a Simple REST APIng-grid and a Simple REST API
ng-grid and a Simple REST API
 
Part 1: ng-grid and a Simple REST API
Part 1: ng-grid and a Simple REST APIPart 1: ng-grid and a Simple REST API
Part 1: ng-grid and a Simple REST API
 
Le Bourget 2017 - From earth observation to actionable intelligence
Le Bourget 2017 - From earth observation to actionable intelligenceLe Bourget 2017 - From earth observation to actionable intelligence
Le Bourget 2017 - From earth observation to actionable intelligence
 
Cloud Composer workshop at Airflow Summit 2023.pdf
Cloud Composer workshop at Airflow Summit 2023.pdfCloud Composer workshop at Airflow Summit 2023.pdf
Cloud Composer workshop at Airflow Summit 2023.pdf
 
Helm Charts Security 101
Helm Charts Security 101Helm Charts Security 101
Helm Charts Security 101
 
CI-CD WITH GITLAB WORKFLOW
CI-CD WITH GITLAB WORKFLOWCI-CD WITH GITLAB WORKFLOW
CI-CD WITH GITLAB WORKFLOW
 
DevFest 2022 - Skaffold 2 Deep Dive Taipei.pdf
DevFest 2022 - Skaffold 2 Deep Dive Taipei.pdfDevFest 2022 - Skaffold 2 Deep Dive Taipei.pdf
DevFest 2022 - Skaffold 2 Deep Dive Taipei.pdf
 
MongoDB Europe 2016 - Warehousing MongoDB Data using Apache Beam and BigQuery
MongoDB Europe 2016 - Warehousing MongoDB Data using Apache Beam and BigQueryMongoDB Europe 2016 - Warehousing MongoDB Data using Apache Beam and BigQuery
MongoDB Europe 2016 - Warehousing MongoDB Data using Apache Beam and BigQuery
 
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
 
GCP-Professional-Cloud-Developer-Exam-v22.2.1_139-taqwlj.pdf
GCP-Professional-Cloud-Developer-Exam-v22.2.1_139-taqwlj.pdfGCP-Professional-Cloud-Developer-Exam-v22.2.1_139-taqwlj.pdf
GCP-Professional-Cloud-Developer-Exam-v22.2.1_139-taqwlj.pdf
 
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic Training
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic TrainingGCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic Training
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic Training
 
DVC - Git-like Data Version Control for Machine Learning projects
DVC - Git-like Data Version Control for Machine Learning projectsDVC - Git-like Data Version Control for Machine Learning projects
DVC - Git-like Data Version Control for Machine Learning projects
 
WT-4064, Build Rich Applications with HTML5 and WebGL, by Tony Parisi
WT-4064, Build Rich Applications with HTML5 and WebGL, by Tony ParisiWT-4064, Build Rich Applications with HTML5 and WebGL, by Tony Parisi
WT-4064, Build Rich Applications with HTML5 and WebGL, by Tony Parisi
 
JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試
 

More from All Things Open

Building Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityBuilding Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityAll Things Open
 
Modern Database Best Practices
Modern Database Best PracticesModern Database Best Practices
Modern Database Best PracticesAll Things Open
 
Open Source and Public Policy
Open Source and Public PolicyOpen Source and Public Policy
Open Source and Public PolicyAll Things Open
 
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...All Things Open
 
The State of Passwordless Auth on the Web - Phil Nash
The State of Passwordless Auth on the Web - Phil NashThe State of Passwordless Auth on the Web - Phil Nash
The State of Passwordless Auth on the Web - Phil NashAll Things Open
 
Total ReDoS: The dangers of regex in JavaScript
Total ReDoS: The dangers of regex in JavaScriptTotal ReDoS: The dangers of regex in JavaScript
Total ReDoS: The dangers of regex in JavaScriptAll Things Open
 
What Does Real World Mass Adoption of Decentralized Tech Look Like?
What Does Real World Mass Adoption of Decentralized Tech Look Like?What Does Real World Mass Adoption of Decentralized Tech Look Like?
What Does Real World Mass Adoption of Decentralized Tech Look Like?All Things Open
 
How to Write & Deploy a Smart Contract
How to Write & Deploy a Smart ContractHow to Write & Deploy a Smart Contract
How to Write & Deploy a Smart ContractAll Things Open
 
Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow
 Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow
Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlowAll Things Open
 
DEI Challenges and Success
DEI Challenges and SuccessDEI Challenges and Success
DEI Challenges and SuccessAll Things Open
 
Scaling Web Applications with Background
Scaling Web Applications with BackgroundScaling Web Applications with Background
Scaling Web Applications with BackgroundAll Things Open
 
Supercharging tutorials with WebAssembly
Supercharging tutorials with WebAssemblySupercharging tutorials with WebAssembly
Supercharging tutorials with WebAssemblyAll Things Open
 
Using SQL to Find Needles in Haystacks
Using SQL to Find Needles in HaystacksUsing SQL to Find Needles in Haystacks
Using SQL to Find Needles in HaystacksAll Things Open
 
Configuration Security as a Game of Pursuit Intercept
Configuration Security as a Game of Pursuit InterceptConfiguration Security as a Game of Pursuit Intercept
Configuration Security as a Game of Pursuit InterceptAll Things Open
 
Scaling an Open Source Sponsorship Program
Scaling an Open Source Sponsorship ProgramScaling an Open Source Sponsorship Program
Scaling an Open Source Sponsorship ProgramAll Things Open
 
Build Developer Experience Teams for Open Source
Build Developer Experience Teams for Open SourceBuild Developer Experience Teams for Open Source
Build Developer Experience Teams for Open SourceAll Things Open
 
Deploying Models at Scale with Apache Beam
Deploying Models at Scale with Apache BeamDeploying Models at Scale with Apache Beam
Deploying Models at Scale with Apache BeamAll Things Open
 
Sudo – Giving access while staying in control
Sudo – Giving access while staying in controlSudo – Giving access while staying in control
Sudo – Giving access while staying in controlAll Things Open
 
Fortifying the Future: Tackling Security Challenges in AI/ML Applications
Fortifying the Future: Tackling Security Challenges in AI/ML ApplicationsFortifying the Future: Tackling Security Challenges in AI/ML Applications
Fortifying the Future: Tackling Security Challenges in AI/ML ApplicationsAll Things Open
 
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...All Things Open
 

More from All Things Open (20)

Building Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityBuilding Reliability - The Realities of Observability
Building Reliability - The Realities of Observability
 
Modern Database Best Practices
Modern Database Best PracticesModern Database Best Practices
Modern Database Best Practices
 
Open Source and Public Policy
Open Source and Public PolicyOpen Source and Public Policy
Open Source and Public Policy
 
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
 
The State of Passwordless Auth on the Web - Phil Nash
The State of Passwordless Auth on the Web - Phil NashThe State of Passwordless Auth on the Web - Phil Nash
The State of Passwordless Auth on the Web - Phil Nash
 
Total ReDoS: The dangers of regex in JavaScript
Total ReDoS: The dangers of regex in JavaScriptTotal ReDoS: The dangers of regex in JavaScript
Total ReDoS: The dangers of regex in JavaScript
 
What Does Real World Mass Adoption of Decentralized Tech Look Like?
What Does Real World Mass Adoption of Decentralized Tech Look Like?What Does Real World Mass Adoption of Decentralized Tech Look Like?
What Does Real World Mass Adoption of Decentralized Tech Look Like?
 
How to Write & Deploy a Smart Contract
How to Write & Deploy a Smart ContractHow to Write & Deploy a Smart Contract
How to Write & Deploy a Smart Contract
 
Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow
 Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow
Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow
 
DEI Challenges and Success
DEI Challenges and SuccessDEI Challenges and Success
DEI Challenges and Success
 
Scaling Web Applications with Background
Scaling Web Applications with BackgroundScaling Web Applications with Background
Scaling Web Applications with Background
 
Supercharging tutorials with WebAssembly
Supercharging tutorials with WebAssemblySupercharging tutorials with WebAssembly
Supercharging tutorials with WebAssembly
 
Using SQL to Find Needles in Haystacks
Using SQL to Find Needles in HaystacksUsing SQL to Find Needles in Haystacks
Using SQL to Find Needles in Haystacks
 
Configuration Security as a Game of Pursuit Intercept
Configuration Security as a Game of Pursuit InterceptConfiguration Security as a Game of Pursuit Intercept
Configuration Security as a Game of Pursuit Intercept
 
Scaling an Open Source Sponsorship Program
Scaling an Open Source Sponsorship ProgramScaling an Open Source Sponsorship Program
Scaling an Open Source Sponsorship Program
 
Build Developer Experience Teams for Open Source
Build Developer Experience Teams for Open SourceBuild Developer Experience Teams for Open Source
Build Developer Experience Teams for Open Source
 
Deploying Models at Scale with Apache Beam
Deploying Models at Scale with Apache BeamDeploying Models at Scale with Apache Beam
Deploying Models at Scale with Apache Beam
 
Sudo – Giving access while staying in control
Sudo – Giving access while staying in controlSudo – Giving access while staying in control
Sudo – Giving access while staying in control
 
Fortifying the Future: Tackling Security Challenges in AI/ML Applications
Fortifying the Future: Tackling Security Challenges in AI/ML ApplicationsFortifying the Future: Tackling Security Challenges in AI/ML Applications
Fortifying the Future: Tackling Security Challenges in AI/ML Applications
 
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
 

Recently uploaded

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 

Recently uploaded (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 

Visualizing Large Greenhouse Gas Datasets in the Browser With deck.gl

  • 1. Visualizing Large Greenhouse Gas Datasets in the Browser With deck.gl All Things Open 2022 David Calhoun, Lead Frontend @ MethaneSAT Slides: bit.ly/deckgl-ato Code: bit.ly/deckgl-ato-github
  • 2. Slides: bit.ly/deckgl-ato MethaneSAT (methanesat.org) ● Subsidiary of the Environmental Defense Fund. ● Launching a satellite 🛰 to get better visibility into worldwide methane emissions contributing to climate change. ○ Satellite -> Data -> Visualization -> Action. All of these are hard. ● Why methane (CH4)? ○ Cutting methane quickly could slow warming by 30% ○ Flatten the curve! Buys us more time to decarbonize.
  • 3. Slides: bit.ly/deckgl-ato deck.gl ● WebGL-powered visualization framework for large-scale datasets. ● History ○ 2015: created for internal use at Uber ○ 2016: open-sourced by Uber ○ 2018: kepler.gl geospatial toolbox announced ○ 2020: moved to Open Governance model under vis.gl umbrella
  • 4. Slides: bit.ly/deckgl-ato Is deck.gl right for you? ● Geospatial dataset recommended. ○ Vector ideally (CSV or GeoJSON). ○ For raster data: deck.gl-raster. ● Thousands to millions of points to display. ○ Alternatively, Mapbox GL is also very capable! ● Need for interactivity (e.g. clientside styling, data filtering). ● Need for 3D. ● ⚠️ May not perform well on mobile devices with limited memory.
  • 5. Slides: bit.ly/deckgl-ato deck.gl Integrations: ● React ● Pure JavaScript, TypeScript ● Python ● R (mapdeck) ● C++ ● Vega Map providers: ● Mapbox ● ArcGIS ● CARTO ● Google Maps
  • 7. Slides: bit.ly/deckgl-ato Let's build! ● Goal: Where are the biggest methane emissions and who is responsible? ● EPA Greenhouse Gas Reporting Program (GHGRP) (units: tons methane CO2 equivalent) ○ Company estimated emissions reported to the EPA in 2021. ○ ⚠️ Caveat: this data underestimates significantly. ○ ~6,000 data points with metadata (283 KB gzipped down the wire, 727 KB uncompressed) ● Full code: bit.ly/deckgl-ato-github
  • 8. Slides: bit.ly/deckgl-ato import DeckGL from 'deck.gl'; import Map from 'react-map-gl'; ... <DeckGL initialViewState={{ longitude: -100, latitude: 40, zoom: 3.5 }} controller={true} > <Map style={{ width: '100vw', height: '100vh' }} mapStyle="mapbox://styles/mapbox/light-v10" mapboxAccessToken={process.env.REACT_APP_MAPBOX_ACCESS_TOKEN} /> </DeckGL> ...
  • 10. Slides: bit.ly/deckgl-ato import DeckGL, { ScatterplotLayer } from 'deck.gl'; import { registerLoaders } from '@loaders.gl/core'; import { CSVLoader } from '@loaders.gl/csv'; registerLoaders(CSVLoader); <DeckGL layers={[ new ScatterplotLayer({ ... id: 'scatterplot-layer', data: './epa-ch4-2021.csv', radiusMinPixels: 1, getPosition: ({ Longitude, Latitude }) => [Longitude, Latitude] }) ]} ... > ...
  • 12. Slides: bit.ly/deckgl-ato import { scaleRadial } from 'd3-scale'; const MAX_METHANE_TONS_CO2EQUIVALENT = 2268589; const MAX_RADIUS_PIXELS = 25; const radiusScale = scaleRadial() .domain([1, MAX_METHANE_TONS_CO2EQUIVALENT]) .rangeRound([1, MAX_RADIUS_PIXELS]); ... new ScatterplotLayer({ ... radiusUnits: 'pixels', getRadius: ({ methane }) => radiusScale(methane), getFillColor: [129, 15, 124], opacity: 0.4 }) ...
  • 14. Slides: bit.ly/deckgl-ato import { DataFilterExtension } from '@deck.gl/extensions'; ... new ScatterplotLayer({ ... getFilterValue: ({ methane }) => methane, filterRange: [500000, MAX_METHANE_TONS_CO2EQUIVALENT], extensions: [new DataFilterExtension({ filterSize: 1 })] }) ...
  • 16. Slides: bit.ly/deckgl-ato const [lowerRange, setLowerRange] = useState(1); ... new ScatterplotLayer({ ... filterRange: [lowerRange, MAX_METHANE_TONS_CO2EQUIVALENT], updateTriggers: { filterRange: lowerRange } }) ... </DeckGL> <input type="range" onChange={(event) => setLowerRange(parseInt(event.target.value))} min={1} max={MAX_METHANE_TONS_CO2EQUIVALENT} value={lowerRange} />
  • 18. Slides: bit.ly/deckgl-ato const [pointDetails, setPointDetails] = useState(''); ... new ScatterplotLayer({ ... pickable: true, highlightColor: [191, 211, 230], autoHighlight: true, onHover: (data) => { const { industry, facility, methane } = data.object; setPointDetails(`Methane Tons CO2 equivalent: ${methane}n Industry: ${industry}n Facility: ${facility}`); } }) ... </DeckGL> <div className="point-details">{pointDetails}</div> ...
  • 20. Slides: bit.ly/deckgl-ato Free methane datasets (satellite, light aircraft) ● Methane Emissions (kg/hr units) ○ MethaneSAT (coming soon) ○ PermianMAP (CSV, Permian Basin) ○ CARB Methane Source Finder (CSV, California) ● Methane Concentrations (ppb units) ○ TROPOMI (netCDF, worldwide) ■ GHGSat's PULSE visualization ● EOG gas flaring sites (VIIRS satellite) (Excel, worldwide)
  • 21. Slides: bit.ly/deckgl-ato More Datasets relevant for Greenhouse Gas (GHG) ● Bottom-up estimate data ○ EPA Greenhouse Gas Reporting Program (GHGRP) (Excel, US) ○ EDGAR (Excel, worldwide) ● Infrastructure context ○ EIA oil and gas basin boundaries (Shapefile, US) ○ HIFLD oil and gas infrastructure (wells, etc) (CSV [+more], US)
  • 22. David Calhoun dcalhoun@methanesat.org @franksvalli …now go use your knowledge for great things! Thank you! Slides: bit.ly/deckgl-ato Code: bit.ly/deckgl-ato-github