ForewordIntroduction1 A Tour of Current Satellite Missions and Products1.1 History of Computational Scientific Visualization1.2 Brief catalog of current satellite products1.2.1 Meteorological and Atmospheric Science1.2.2 Hydrology1.2.3 Oceanography and Biogeosciences1.2.4 Cryosphere1.3 The Flow of Data from Satellites to Computer1.4 Learning using Real Data and Case Studies1.5 Summary1.6 References2 Overview of Python2.1 Why Python?2.2 Useful Packages for Remote Sensing Visualization2.2.1 NumPy2.2.2 Pandas2.2.3 Matplotlib2.2.4 netCDF4 and h5py2.2.5 Cartopy2.3 Maturing Packages2.3.1 xarray2.3.2 Dask2.3.3 Iris2.3.4 MetPy2.3.5 cfgrib and eccodes2.4 Summary2.5 References3 A Deep Dive into Scientific Data Sets3.1 Storage3.1.1 Single-values3.1.2 Arrays3.2 Data Formats3.2.1 Binary3.2.2 Text3.2.3 Self-describing data formats3.2.4 Table-Driven Formats3.2.5 geoTIFF3.3 Data Usage3.3.1 Processing Levels3.3.2 Product Maturity3.3.3 Quality Control3.3.4 Data Latency3.3.5 Re-processing3.4 Summary3.5 References4 Practical Python Syntax4.1 "Hello Earth" in Python4.2 Variable Assignment and Arithmetic4.3 Lists4.4 Importing Packages4.5 Array and Matrix Operations4.6 Time Series Data4.7 Loops4.8 List Comprehensions4.9 Functions4.10 Dictionaries4.11 Summary4.12 References5 Importing Standard Earth Science Datasets5.1 Text5.2 NetCDF5.3 HDF5.4 GRIB25.5 Importing Data using xarray5.5.1 netCDF5.5.2 GRIB25.5.3 Accessing datasets using OpenDAP5.6 Summary5.7 References6 Plotting and Graphs for All6.1 Univariate Plots6.1.1 Histograms6.1.2 Barplots6.2 Two Variable Plots6.2.1 Converting Data to a Time Series6.2.2 Useful Plot Customizations6.2.3 Scatter Plots6.2.4 Line Plots6.2.5 Adding data to an existing plot6.2.6 Plotting two side-by-side plots6.2.7 Skew-T Log-P6.3 Three Variable Plots6.3.1 Filled Contour6.3.2 Mesh Plots6.4 Summary6.5 References7 Creating Effective and Functional Maps7.1 Cartographic Projections7.1.1 Projections7.1.2 Plate Carrée7.1.3 Equidistant Conic7.1.4 Orthographic7.2 Cylindrical Maps7.2.1 Global plots7.2.2 Changing projections7.2.3 Regional Plots7.2.4 Swath Data7.2.5 Quality Flag Filtering7.3 Polar Stereographic Maps7.4 Geostationary Maps7.5 Plotting datasets using OpenDAP7.6 Summary7.7 References8 Gridding Operations8.1 Regular 1D grids8.2 Regular 2D grids8.3 Irregular 2D grids8.3.1 Resizing8.3.2 Regridding8.3.3 Resampling8.4 Summary8.5 References9 Meaningful Visuals through Data Combination9.1 Spectral and Spatial Characteristics of Different Sensors9.2 Normalized Difference Vegetation Index (NDVI)9.3 Window Channels9.4 RGB9.4.1 True Color9.4.2 Dust RGB9.4.3 Fire/Natural RGB9.5 Matching with Surface Observations9.5.1 With user-defined functions9.5.2 With Machine Learning9.6 Summary9.7 References10 Exporting with Ease10.1 Figures10.2 Text Files10.3 Pickling10.4 NumPy binary files10.5 NetCDF10.5.1 Using netCDF4 to create netCDF files10.5.2 Using Xarray to create netCDF files10.5.3 Following Climate and Forecast (CF) metadata conventions10.6 Summary11 Developing a Workflow11.1 Scripting with Python11.1.1 Creating scripts using text editors11.1.2 Creating scripts from Jupyter Notebooks11.1.3 Running Python scripts from the command line11.1.4 Handling output when scripting11.2 Version Control11.2.1 Code Sharing though Online Repositories11.2.2 Setting-up on GitHub11.3 Virtual Environments11.3.1 Creating an environment11.3.2 Changing environments from the command line11.3.3 Changing environments in Jupyter Notebook11.4 Methods for code development11.5 Summary11.6 References12 Reproducible and Shareable Science12.1 Clean Coding Techniques12.1.1 Stylistic conventions12.1.2 Tools for Clean Code12.2 Documentation12.2.1 Comments and docstrings12.2.2 README file12.2.3 Creating useful commit messages12.3 Licensing12.4 Effective Visuals12.4.1 Make a Statement12.4.2 Undergo Revision12.4.3 Are Accessible and Ethical12.5 Summary12.6 ReferencesConclusionA Installing PythonA.1 Download and Install AnacondaA.2 Package management in AnacondaA.3 Download sample data for this bookB Jupyter NotebooksB.1 Running on a Local Machine (New Coders)B.2 Running on a Remote Server (Advanced)B.3 Tips for Advanced UsersB.3.1 Customizing Notebooks with Configuration FilesB.3.2 Starting and Ending Python ScriptsB.3.3 Creating Git Commit templatesC Additional Learning ResourcesD ToolsD.1 Text Editors and IDEsD.2 TerminalsE Finding, Accessing, and Downloading Satellite DatasetsE.1 Ordering data from NASA EarthDataE.2 Ordering data from NOAA/CLASSF AcronymsAcknowledgements
Rebekah B. Esmaili, Science and Technology Corporation, USA