+353-1-416-8900REST OF WORLD
+44-20-3973-8888REST OF WORLD
1-917-300-0470EAST COAST U.S
1-800-526-8630U.S. (TOLL FREE)

Earth Observation Using Python. A Practical Programming Guide. Edition No. 1. Special Publications

  • Book

  • 304 Pages
  • August 2021
  • John Wiley and Sons Ltd
  • ID: 5836265

Learn basic Python programming to create functional and effective visualizations from earth observation satellite data sets

Thousands of satellite datasets are freely available online, but scientists need the right tools to efficiently analyze data and share results. Python has easy-to-learn syntax and thousands of libraries to perform common Earth science programming tasks.

Earth Observation Using Python: A Practical Programming Guide presents an example-driven collection of basic methods, applications, and visualizations to process satellite data sets for Earth science research.

  • Gain Python fluency using real data and case studies
  • Read and write common scientific data formats, like netCDF, HDF, and GRIB2
  • Create 3-dimensional maps of dust, fire, vegetation indices and more
  • Learn to adjust satellite imagery resolution, apply quality control, and handle big files
  • Develop useful workflows and learn to share code using version control
  • Acquire skills using online interactive code available for all examples in the book

The American Geophysical Union promotes discovery in Earth and space science for the benefit of humanity. Its publications disseminate scientific knowledge and provide resources for researchers, students, and professionals.

Table of Contents

Foreword

Introduction

1 A Tour of Current Satellite Missions and Products

1.1 History of Computational Scientific Visualization

1.2 Brief catalog of current satellite products

1.2.1 Meteorological and Atmospheric Science

1.2.2 Hydrology

1.2.3 Oceanography and Biogeosciences

1.2.4 Cryosphere

1.3 The Flow of Data from Satellites to Computer

1.4 Learning using Real Data and Case Studies

1.5 Summary

1.6 References

2 Overview of Python

2.1 Why Python?

2.2 Useful Packages for Remote Sensing Visualization

2.2.1 NumPy

2.2.2 Pandas

2.2.3 Matplotlib

2.2.4 netCDF4 and h5py

2.2.5 Cartopy

2.3 Maturing Packages

2.3.1 xarray

2.3.2 Dask

2.3.3 Iris

2.3.4 MetPy

2.3.5 cfgrib and eccodes

2.4 Summary

2.5 References

3 A Deep Dive into Scientific Data Sets

3.1 Storage

3.1.1 Single-values

3.1.2 Arrays

3.2 Data Formats

3.2.1 Binary

3.2.2 Text

3.2.3 Self-describing data formats

3.2.4 Table-Driven Formats

3.2.5 geoTIFF

3.3 Data Usage

3.3.1 Processing Levels

3.3.2 Product Maturity

3.3.3 Quality Control

3.3.4 Data Latency

3.3.5 Re-processing

3.4 Summary

3.5 References

4 Practical Python Syntax

4.1 "Hello Earth" in Python

4.2 Variable Assignment and Arithmetic

4.3 Lists

4.4 Importing Packages

4.5 Array and Matrix Operations

4.6 Time Series Data

4.7 Loops

4.8 List Comprehensions

4.9 Functions

4.10 Dictionaries

4.11 Summary

4.12 References

5 Importing Standard Earth Science Datasets

5.1 Text

5.2 NetCDF

5.3 HDF

5.4 GRIB2

5.5 Importing Data using xarray

5.5.1 netCDF

5.5.2 GRIB2

5.5.3 Accessing datasets using OpenDAP

5.6 Summary

5.7 References

6 Plotting and Graphs for All

6.1 Univariate Plots

6.1.1 Histograms

6.1.2 Barplots

6.2 Two Variable Plots

6.2.1 Converting Data to a Time Series

6.2.2 Useful Plot Customizations

6.2.3 Scatter Plots

6.2.4 Line Plots

6.2.5 Adding data to an existing plot

6.2.6 Plotting two side-by-side plots

6.2.7 Skew-T Log-P

6.3 Three Variable Plots

6.3.1 Filled Contour

6.3.2 Mesh Plots

6.4 Summary

6.5 References

7 Creating Effective and Functional Maps

7.1 Cartographic Projections

7.1.1 Projections

7.1.2 Plate Carrée

7.1.3 Equidistant Conic

7.1.4 Orthographic

7.2 Cylindrical Maps

7.2.1 Global plots

7.2.2 Changing projections

7.2.3 Regional Plots

7.2.4 Swath Data

7.2.5 Quality Flag Filtering

7.3 Polar Stereographic Maps

7.4 Geostationary Maps

7.5 Plotting datasets using OpenDAP

7.6 Summary

7.7 References

8 Gridding Operations

8.1 Regular 1D grids

8.2 Regular 2D grids

8.3 Irregular 2D grids

8.3.1 Resizing

8.3.2 Regridding

8.3.3 Resampling

8.4 Summary

8.5 References

9 Meaningful Visuals through Data Combination

9.1 Spectral and Spatial Characteristics of Different Sensors

9.2 Normalized Difference Vegetation Index (NDVI)

9.3 Window Channels

9.4 RGB

9.4.1 True Color

9.4.2 Dust RGB

9.4.3 Fire/Natural RGB

9.5 Matching with Surface Observations

9.5.1 With user-defined functions

9.5.2 With Machine Learning

9.6 Summary

9.7 References

10 Exporting with Ease

10.1 Figures

10.2 Text Files

10.3 Pickling

10.4 NumPy binary files

10.5 NetCDF

10.5.1 Using netCDF4 to create netCDF files

10.5.2 Using Xarray to create netCDF files

10.5.3 Following Climate and Forecast (CF) metadata conventions

10.6 Summary

11 Developing a Workflow

11.1 Scripting with Python

11.1.1 Creating scripts using text editors

11.1.2 Creating scripts from Jupyter Notebooks

11.1.3 Running Python scripts from the command line

11.1.4 Handling output when scripting

11.2 Version Control

11.2.1 Code Sharing though Online Repositories

11.2.2 Setting-up on GitHub

11.3 Virtual Environments

11.3.1 Creating an environment

11.3.2 Changing environments from the command line

11.3.3 Changing environments in Jupyter Notebook

11.4 Methods for code development

11.5 Summary

11.6 References

12 Reproducible and Shareable Science

12.1 Clean Coding Techniques

12.1.1 Stylistic conventions

12.1.2 Tools for Clean Code

12.2 Documentation

12.2.1 Comments and docstrings

12.2.2 README file

12.2.3 Creating useful commit messages

12.3 Licensing

12.4 Effective Visuals

12.4.1 Make a Statement

12.4.2 Undergo Revision

12.4.3 Are Accessible and Ethical

12.5 Summary

12.6 References

Conclusion

A Installing Python

A.1 Download and Install Anaconda

A.2 Package management in Anaconda

A.3 Download sample data for this book

B Jupyter Notebooks

B.1 Running on a Local Machine (New Coders)

B.2 Running on a Remote Server (Advanced)

B.3 Tips for Advanced Users

B.3.1 Customizing Notebooks with Configuration Files

B.3.2 Starting and Ending Python Scripts

B.3.3 Creating Git Commit templates

C Additional Learning Resources

D Tools

D.1 Text Editors and IDEs

D.2 Terminals

E Finding, Accessing, and Downloading Satellite Datasets

E.1 Ordering data from NASA EarthData

E.2 Ordering data from NOAA/CLASS

F Acronyms

Acknowledgements

Authors

Rebekah B. Esmaili University of Maryland, USA.