Skip to content

Latest commit

History

132 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Programming for Earth Science Students

Authors: Lisa Tauxe, ltauxe@ucsd.edu, Hanna Asefaw, hasefaw@ucs.dedu, & Brendan Cych, bcych@ucsd.edu

Licensing:

Shield: CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

Computers in Earth Science

Computers are essential to all modern Earth Science research. We use them for compiling and analyzing data, preparing illustrations like maps or data plots, writing manuscripts, and so on. In this class, you will learn to write computer programs with special applications useful to Earth Scientists. We will learn Python, an object-oriented programming language, and use Jupyter notebooks to write our Python programs.

Python

So, why learn Python? Because it is:

  • Flexible, freely available, cross platform
  • Easier to learn than many other languages
  • It has many numerical, statistical and visualization packages
  • It is well supported and has lots of online documentation
  • The name 'Python' refers to 'Monty Python' - not the snake - and many examples in the Python documentation use jokes from the old Monty Python skits. If you have never heard of Monty Python, look it up on youtube; you are in for a treat.

Which Python?

  • Python underwent a transition from 2.7 to 3. The notebooks in this class, apart from a few exceptions, are compatible with both but they have only been tested on Python 3, so that is what you should be using.
  • If you decide to use a personal computer, we recommend that you install the most recent version of Anaconda python for your operating system: https://www.anaconda.com/download/ you will also need a few extra packages (cartopy, version 0.17.0, geoplots, geopandas and a few others) which can be installed with little hassle.

Jupyter notebooks

This course is entirely structured around a special programming environment called Jupyter notebooks. A Jupyter notebook is a development environment where you can write, debug, and execute your programs.

Clone or download this repository and launch the Jupyter notebook environment.

To do this, you will need to discover the hidden secret of your computer, the Terminal window (or Anaconda Prompt on a PC). This little window provides a command line interface in which you can type commands to the operating system. You can find the terminal window through the program Terminal on a Mac by typing terminal.app into the search icon. If you double click on it, it will open a terminal window. To find it on a PC search for the program anaconda

Once you have launched the jupyter notebook browser, navigate to your course directory and open Lecture_01.ipynb

Lecture 1

  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebooks from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic UNIX commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.

Lecture 2

  • Learn about variables
  • Learn about operations

Lecture 3

  • Learn about collections of variables: data structures

  • Learn about objects - Learn about methods which allow you to do things to objects

Lecture 4:

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks

Lecture 5:

  • Learn about functions
  • Discover the joys of modules

Lecture 6:

  • get a first peek at the very useful Python packages called NumPy and matplotlib

Lecture 7:

  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.

Lecture 8:

  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas

Lecture 9

  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.

Lecture 10:

  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies

Lecture 11:

  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension

Lecture 12:

  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes

Lecture 13:

  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python

Lecture 14:

  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)

Lecture 15:

  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.

Lecture 16:

  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.

Lecture 17:

  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

Lecture 18:

  • start to make some basic maps using Cartopy. Yippee (we love maps).

Lecture 19:

  • Learn about gridding and contouring with cartopy
  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebook from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic python operating system commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.
  • Learn about variables
  • Learn about operations
  • Learn about collections of variables: data structures

  • Learn about objects

  • Learn about methods which allow you to do things to objects

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks
  • Learn about functions
  • Discover the joys of modules
  • get a first peek at the very useful Python packages called NumPy and matplotlib
  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.
  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas
  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.
  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies
  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension
  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes
  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python
  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)
  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.
  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.
  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • start to make some basic maps using Cartopy. Yippee (we love maps).

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • Learn about gridding and contouring with cartopy
  • Learn about geoplot and geopandas
  • Learn a bit about coordinate systems (UTM versus WGS84, as examples)
  • Learn something about Hawaiian volcanism
  • We will work with directional data using rose diagrams and stereonets
  • Learn some useful tricks about matrix math.
  • Learn how to plot great and small circles on an equal area net and map projections.
  • Find out about Machine Learning
  • Learn about using the scikit-learn python package for clustering analysis.
  • Apply clustering analysis to Earth Science problems
  • Learn how to use satellite imagery to understand land usage.
  • Learn how to use patches in matplotlib.
  • Learn about using the scikit-learn python package to classify data.
  • Learn about 3D plots of points and surfaces
  • Show some examples with subduction zone earthquakes and isotopic systems
  • Take a look at data with respect to time (time series)
  • Learn a bit about time series analysis.
  • Learn how to make and display animated gifs

About

No description, website, or topics provided.

Resources

Stars

126 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - ltauxe/Python-for-Earth-Science-Students · GitHub
Skip to content

Latest commit

History

132 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Programming for Earth Science Students

Authors: Lisa Tauxe, ltauxe@ucsd.edu, Hanna Asefaw, hasefaw@ucs.dedu, & Brendan Cych, bcych@ucsd.edu

Licensing:

Shield: CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

Computers in Earth Science

Computers are essential to all modern Earth Science research. We use them for compiling and analyzing data, preparing illustrations like maps or data plots, writing manuscripts, and so on. In this class, you will learn to write computer programs with special applications useful to Earth Scientists. We will learn Python, an object-oriented programming language, and use Jupyter notebooks to write our Python programs.

Python

So, why learn Python? Because it is:

  • Flexible, freely available, cross platform
  • Easier to learn than many other languages
  • It has many numerical, statistical and visualization packages
  • It is well supported and has lots of online documentation
  • The name 'Python' refers to 'Monty Python' - not the snake - and many examples in the Python documentation use jokes from the old Monty Python skits. If you have never heard of Monty Python, look it up on youtube; you are in for a treat.

Which Python?

  • Python underwent a transition from 2.7 to 3. The notebooks in this class, apart from a few exceptions, are compatible with both but they have only been tested on Python 3, so that is what you should be using.
  • If you decide to use a personal computer, we recommend that you install the most recent version of Anaconda python for your operating system: https://www.anaconda.com/download/ you will also need a few extra packages (cartopy, version 0.17.0, geoplots, geopandas and a few others) which can be installed with little hassle.

Jupyter notebooks

This course is entirely structured around a special programming environment called Jupyter notebooks. A Jupyter notebook is a development environment where you can write, debug, and execute your programs.

Clone or download this repository and launch the Jupyter notebook environment.

To do this, you will need to discover the hidden secret of your computer, the Terminal window (or Anaconda Prompt on a PC). This little window provides a command line interface in which you can type commands to the operating system. You can find the terminal window through the program Terminal on a Mac by typing terminal.app into the search icon. If you double click on it, it will open a terminal window. To find it on a PC search for the program anaconda

Once you have launched the jupyter notebook browser, navigate to your course directory and open Lecture_01.ipynb

Lecture 1

  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebooks from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic UNIX commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.

Lecture 2

  • Learn about variables
  • Learn about operations

Lecture 3

  • Learn about collections of variables: data structures

  • Learn about objects - Learn about methods which allow you to do things to objects

Lecture 4:

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks

Lecture 5:

  • Learn about functions
  • Discover the joys of modules

Lecture 6:

  • get a first peek at the very useful Python packages called NumPy and matplotlib

Lecture 7:

  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.

Lecture 8:

  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas

Lecture 9

  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.

Lecture 10:

  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies

Lecture 11:

  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension

Lecture 12:

  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes

Lecture 13:

  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python

Lecture 14:

  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)

Lecture 15:

  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.

Lecture 16:

  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.

Lecture 17:

  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

Lecture 18:

  • start to make some basic maps using Cartopy. Yippee (we love maps).

Lecture 19:

  • Learn about gridding and contouring with cartopy
  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebook from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic python operating system commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.
  • Learn about variables
  • Learn about operations
  • Learn about collections of variables: data structures

  • Learn about objects

  • Learn about methods which allow you to do things to objects

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks
  • Learn about functions
  • Discover the joys of modules
  • get a first peek at the very useful Python packages called NumPy and matplotlib
  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.
  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas
  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.
  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies
  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension
  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes
  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python
  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)
  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.
  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.
  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • start to make some basic maps using Cartopy. Yippee (we love maps).

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • Learn about gridding and contouring with cartopy
  • Learn about geoplot and geopandas
  • Learn a bit about coordinate systems (UTM versus WGS84, as examples)
  • Learn something about Hawaiian volcanism
  • We will work with directional data using rose diagrams and stereonets
  • Learn some useful tricks about matrix math.
  • Learn how to plot great and small circles on an equal area net and map projections.
  • Find out about Machine Learning
  • Learn about using the scikit-learn python package for clustering analysis.
  • Apply clustering analysis to Earth Science problems
  • Learn how to use satellite imagery to understand land usage.
  • Learn how to use patches in matplotlib.
  • Learn about using the scikit-learn python package to classify data.
  • Learn about 3D plots of points and surfaces
  • Show some examples with subduction zone earthquakes and isotopic systems
  • Take a look at data with respect to time (time series)
  • Learn a bit about time series analysis.
  • Learn how to make and display animated gifs

About

No description, website, or topics provided.

Resources

Stars

126 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ltauxe/Python-for-Earth-Science-Students · GitHub
Skip to content

Latest commit

History

132 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Programming for Earth Science Students

Authors: Lisa Tauxe, ltauxe@ucsd.edu, Hanna Asefaw, hasefaw@ucs.dedu, & Brendan Cych, bcych@ucsd.edu

Licensing:

Shield: CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

Computers in Earth Science

Computers are essential to all modern Earth Science research. We use them for compiling and analyzing data, preparing illustrations like maps or data plots, writing manuscripts, and so on. In this class, you will learn to write computer programs with special applications useful to Earth Scientists. We will learn Python, an object-oriented programming language, and use Jupyter notebooks to write our Python programs.

Python

So, why learn Python? Because it is:

  • Flexible, freely available, cross platform
  • Easier to learn than many other languages
  • It has many numerical, statistical and visualization packages
  • It is well supported and has lots of online documentation
  • The name 'Python' refers to 'Monty Python' - not the snake - and many examples in the Python documentation use jokes from the old Monty Python skits. If you have never heard of Monty Python, look it up on youtube; you are in for a treat.

Which Python?

  • Python underwent a transition from 2.7 to 3. The notebooks in this class, apart from a few exceptions, are compatible with both but they have only been tested on Python 3, so that is what you should be using.
  • If you decide to use a personal computer, we recommend that you install the most recent version of Anaconda python for your operating system: https://www.anaconda.com/download/ you will also need a few extra packages (cartopy, version 0.17.0, geoplots, geopandas and a few others) which can be installed with little hassle.

Jupyter notebooks

This course is entirely structured around a special programming environment called Jupyter notebooks. A Jupyter notebook is a development environment where you can write, debug, and execute your programs.

Clone or download this repository and launch the Jupyter notebook environment.

To do this, you will need to discover the hidden secret of your computer, the Terminal window (or Anaconda Prompt on a PC). This little window provides a command line interface in which you can type commands to the operating system. You can find the terminal window through the program Terminal on a Mac by typing terminal.app into the search icon. If you double click on it, it will open a terminal window. To find it on a PC search for the program anaconda

Once you have launched the jupyter notebook browser, navigate to your course directory and open Lecture_01.ipynb

Lecture 1

  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebooks from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic UNIX commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.

Lecture 2

  • Learn about variables
  • Learn about operations

Lecture 3

  • Learn about collections of variables: data structures

  • Learn about objects - Learn about methods which allow you to do things to objects

Lecture 4:

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks

Lecture 5:

  • Learn about functions
  • Discover the joys of modules

Lecture 6:

  • get a first peek at the very useful Python packages called NumPy and matplotlib

Lecture 7:

  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.

Lecture 8:

  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas

Lecture 9

  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.

Lecture 10:

  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies

Lecture 11:

  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension

Lecture 12:

  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes

Lecture 13:

  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python

Lecture 14:

  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)

Lecture 15:

  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.

Lecture 16:

  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.

Lecture 17:

  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

Lecture 18:

  • start to make some basic maps using Cartopy. Yippee (we love maps).

Lecture 19:

  • Learn about gridding and contouring with cartopy
  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebook from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic python operating system commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.
  • Learn about variables
  • Learn about operations
  • Learn about collections of variables: data structures

  • Learn about objects

  • Learn about methods which allow you to do things to objects

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks
  • Learn about functions
  • Discover the joys of modules
  • get a first peek at the very useful Python packages called NumPy and matplotlib
  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.
  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas
  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.
  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies
  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension
  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes
  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python
  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)
  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.
  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.
  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • start to make some basic maps using Cartopy. Yippee (we love maps).

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • Learn about gridding and contouring with cartopy
  • Learn about geoplot and geopandas
  • Learn a bit about coordinate systems (UTM versus WGS84, as examples)
  • Learn something about Hawaiian volcanism
  • We will work with directional data using rose diagrams and stereonets
  • Learn some useful tricks about matrix math.
  • Learn how to plot great and small circles on an equal area net and map projections.
  • Find out about Machine Learning
  • Learn about using the scikit-learn python package for clustering analysis.
  • Apply clustering analysis to Earth Science problems
  • Learn how to use satellite imagery to understand land usage.
  • Learn how to use patches in matplotlib.
  • Learn about using the scikit-learn python package to classify data.
  • Learn about 3D plots of points and surfaces
  • Show some examples with subduction zone earthquakes and isotopic systems
  • Take a look at data with respect to time (time series)
  • Learn a bit about time series analysis.
  • Learn how to make and display animated gifs

About

No description, website, or topics provided.

Resources

Stars

126 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ltauxe/Python-for-Earth-Science-Students · GitHub
Skip to content

Latest commit

History

132 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Programming for Earth Science Students

Authors: Lisa Tauxe, ltauxe@ucsd.edu, Hanna Asefaw, hasefaw@ucs.dedu, & Brendan Cych, bcych@ucsd.edu

Licensing:

Shield: CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

Computers in Earth Science

Computers are essential to all modern Earth Science research. We use them for compiling and analyzing data, preparing illustrations like maps or data plots, writing manuscripts, and so on. In this class, you will learn to write computer programs with special applications useful to Earth Scientists. We will learn Python, an object-oriented programming language, and use Jupyter notebooks to write our Python programs.

Python

So, why learn Python? Because it is:

  • Flexible, freely available, cross platform
  • Easier to learn than many other languages
  • It has many numerical, statistical and visualization packages
  • It is well supported and has lots of online documentation
  • The name 'Python' refers to 'Monty Python' - not the snake - and many examples in the Python documentation use jokes from the old Monty Python skits. If you have never heard of Monty Python, look it up on youtube; you are in for a treat.

Which Python?

  • Python underwent a transition from 2.7 to 3. The notebooks in this class, apart from a few exceptions, are compatible with both but they have only been tested on Python 3, so that is what you should be using.
  • If you decide to use a personal computer, we recommend that you install the most recent version of Anaconda python for your operating system: https://www.anaconda.com/download/ you will also need a few extra packages (cartopy, version 0.17.0, geoplots, geopandas and a few others) which can be installed with little hassle.

Jupyter notebooks

This course is entirely structured around a special programming environment called Jupyter notebooks. A Jupyter notebook is a development environment where you can write, debug, and execute your programs.

Clone or download this repository and launch the Jupyter notebook environment.

To do this, you will need to discover the hidden secret of your computer, the Terminal window (or Anaconda Prompt on a PC). This little window provides a command line interface in which you can type commands to the operating system. You can find the terminal window through the program Terminal on a Mac by typing terminal.app into the search icon. If you double click on it, it will open a terminal window. To find it on a PC search for the program anaconda

Once you have launched the jupyter notebook browser, navigate to your course directory and open Lecture_01.ipynb

Lecture 1

  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebooks from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic UNIX commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.

Lecture 2

  • Learn about variables
  • Learn about operations

Lecture 3

  • Learn about collections of variables: data structures

  • Learn about objects - Learn about methods which allow you to do things to objects

Lecture 4:

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks

Lecture 5:

  • Learn about functions
  • Discover the joys of modules

Lecture 6:

  • get a first peek at the very useful Python packages called NumPy and matplotlib

Lecture 7:

  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.

Lecture 8:

  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas

Lecture 9

  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.

Lecture 10:

  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies

Lecture 11:

  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension

Lecture 12:

  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes

Lecture 13:

  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python

Lecture 14:

  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)

Lecture 15:

  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.

Lecture 16:

  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.

Lecture 17:

  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

Lecture 18:

  • start to make some basic maps using Cartopy. Yippee (we love maps).

Lecture 19:

  • Learn about gridding and contouring with cartopy
  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebook from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic python operating system commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.
  • Learn about variables
  • Learn about operations
  • Learn about collections of variables: data structures

  • Learn about objects

  • Learn about methods which allow you to do things to objects

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks
  • Learn about functions
  • Discover the joys of modules
  • get a first peek at the very useful Python packages called NumPy and matplotlib
  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.
  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas
  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.
  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies
  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension
  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes
  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python
  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)
  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.
  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.
  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • start to make some basic maps using Cartopy. Yippee (we love maps).

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • Learn about gridding and contouring with cartopy
  • Learn about geoplot and geopandas
  • Learn a bit about coordinate systems (UTM versus WGS84, as examples)
  • Learn something about Hawaiian volcanism
  • We will work with directional data using rose diagrams and stereonets
  • Learn some useful tricks about matrix math.
  • Learn how to plot great and small circles on an equal area net and map projections.
  • Find out about Machine Learning
  • Learn about using the scikit-learn python package for clustering analysis.
  • Apply clustering analysis to Earth Science problems
  • Learn how to use satellite imagery to understand land usage.
  • Learn how to use patches in matplotlib.
  • Learn about using the scikit-learn python package to classify data.
  • Learn about 3D plots of points and surfaces
  • Show some examples with subduction zone earthquakes and isotopic systems
  • Take a look at data with respect to time (time series)
  • Learn a bit about time series analysis.
  • Learn how to make and display animated gifs

About

No description, website, or topics provided.

Resources

Stars

126 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - ltauxe/Python-for-Earth-Science-Students · GitHub
Skip to content

Latest commit

History

132 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Programming for Earth Science Students

Authors: Lisa Tauxe, ltauxe@ucsd.edu, Hanna Asefaw, hasefaw@ucs.dedu, & Brendan Cych, bcych@ucsd.edu

Licensing:

Shield: CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

Computers in Earth Science

Computers are essential to all modern Earth Science research. We use them for compiling and analyzing data, preparing illustrations like maps or data plots, writing manuscripts, and so on. In this class, you will learn to write computer programs with special applications useful to Earth Scientists. We will learn Python, an object-oriented programming language, and use Jupyter notebooks to write our Python programs.

Python

So, why learn Python? Because it is:

  • Flexible, freely available, cross platform
  • Easier to learn than many other languages
  • It has many numerical, statistical and visualization packages
  • It is well supported and has lots of online documentation
  • The name 'Python' refers to 'Monty Python' - not the snake - and many examples in the Python documentation use jokes from the old Monty Python skits. If you have never heard of Monty Python, look it up on youtube; you are in for a treat.

Which Python?

  • Python underwent a transition from 2.7 to 3. The notebooks in this class, apart from a few exceptions, are compatible with both but they have only been tested on Python 3, so that is what you should be using.
  • If you decide to use a personal computer, we recommend that you install the most recent version of Anaconda python for your operating system: https://www.anaconda.com/download/ you will also need a few extra packages (cartopy, version 0.17.0, geoplots, geopandas and a few others) which can be installed with little hassle.

Jupyter notebooks

This course is entirely structured around a special programming environment called Jupyter notebooks. A Jupyter notebook is a development environment where you can write, debug, and execute your programs.

Clone or download this repository and launch the Jupyter notebook environment.

To do this, you will need to discover the hidden secret of your computer, the Terminal window (or Anaconda Prompt on a PC). This little window provides a command line interface in which you can type commands to the operating system. You can find the terminal window through the program Terminal on a Mac by typing terminal.app into the search icon. If you double click on it, it will open a terminal window. To find it on a PC search for the program anaconda

Once you have launched the jupyter notebook browser, navigate to your course directory and open Lecture_01.ipynb

Lecture 1

  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebooks from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic UNIX commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.

Lecture 2

  • Learn about variables
  • Learn about operations

Lecture 3

  • Learn about collections of variables: data structures

  • Learn about objects - Learn about methods which allow you to do things to objects

Lecture 4:

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks

Lecture 5:

  • Learn about functions
  • Discover the joys of modules

Lecture 6:

  • get a first peek at the very useful Python packages called NumPy and matplotlib

Lecture 7:

  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.

Lecture 8:

  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas

Lecture 9

  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.

Lecture 10:

  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies

Lecture 11:

  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension

Lecture 12:

  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes

Lecture 13:

  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python

Lecture 14:

  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)

Lecture 15:

  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.

Lecture 16:

  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.

Lecture 17:

  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

Lecture 18:

  • start to make some basic maps using Cartopy. Yippee (we love maps).

Lecture 19:

  • Learn about gridding and contouring with cartopy
  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebook from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic python operating system commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.
  • Learn about variables
  • Learn about operations
  • Learn about collections of variables: data structures

  • Learn about objects

  • Learn about methods which allow you to do things to objects

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks
  • Learn about functions
  • Discover the joys of modules
  • get a first peek at the very useful Python packages called NumPy and matplotlib
  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.
  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas
  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.
  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies
  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension
  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes
  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python
  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)
  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.
  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.
  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • start to make some basic maps using Cartopy. Yippee (we love maps).

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • Learn about gridding and contouring with cartopy
  • Learn about geoplot and geopandas
  • Learn a bit about coordinate systems (UTM versus WGS84, as examples)
  • Learn something about Hawaiian volcanism
  • We will work with directional data using rose diagrams and stereonets
  • Learn some useful tricks about matrix math.
  • Learn how to plot great and small circles on an equal area net and map projections.
  • Find out about Machine Learning
  • Learn about using the scikit-learn python package for clustering analysis.
  • Apply clustering analysis to Earth Science problems
  • Learn how to use satellite imagery to understand land usage.
  • Learn how to use patches in matplotlib.
  • Learn about using the scikit-learn python package to classify data.
  • Learn about 3D plots of points and surfaces
  • Show some examples with subduction zone earthquakes and isotopic systems
  • Take a look at data with respect to time (time series)
  • Learn a bit about time series analysis.
  • Learn how to make and display animated gifs

About

No description, website, or topics provided.

Resources

Stars

126 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ltauxe/Python-for-Earth-Science-Students · GitHub
Skip to content

Latest commit

History

132 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Programming for Earth Science Students

Authors: Lisa Tauxe, ltauxe@ucsd.edu, Hanna Asefaw, hasefaw@ucs.dedu, & Brendan Cych, bcych@ucsd.edu

Licensing:

Shield: CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

Computers in Earth Science

Computers are essential to all modern Earth Science research. We use them for compiling and analyzing data, preparing illustrations like maps or data plots, writing manuscripts, and so on. In this class, you will learn to write computer programs with special applications useful to Earth Scientists. We will learn Python, an object-oriented programming language, and use Jupyter notebooks to write our Python programs.

Python

So, why learn Python? Because it is:

  • Flexible, freely available, cross platform
  • Easier to learn than many other languages
  • It has many numerical, statistical and visualization packages
  • It is well supported and has lots of online documentation
  • The name 'Python' refers to 'Monty Python' - not the snake - and many examples in the Python documentation use jokes from the old Monty Python skits. If you have never heard of Monty Python, look it up on youtube; you are in for a treat.

Which Python?

  • Python underwent a transition from 2.7 to 3. The notebooks in this class, apart from a few exceptions, are compatible with both but they have only been tested on Python 3, so that is what you should be using.
  • If you decide to use a personal computer, we recommend that you install the most recent version of Anaconda python for your operating system: https://www.anaconda.com/download/ you will also need a few extra packages (cartopy, version 0.17.0, geoplots, geopandas and a few others) which can be installed with little hassle.

Jupyter notebooks

This course is entirely structured around a special programming environment called Jupyter notebooks. A Jupyter notebook is a development environment where you can write, debug, and execute your programs.

Clone or download this repository and launch the Jupyter notebook environment.

To do this, you will need to discover the hidden secret of your computer, the Terminal window (or Anaconda Prompt on a PC). This little window provides a command line interface in which you can type commands to the operating system. You can find the terminal window through the program Terminal on a Mac by typing terminal.app into the search icon. If you double click on it, it will open a terminal window. To find it on a PC search for the program anaconda

Once you have launched the jupyter notebook browser, navigate to your course directory and open Lecture_01.ipynb

Lecture 1

  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebooks from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic UNIX commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.

Lecture 2

  • Learn about variables
  • Learn about operations

Lecture 3

  • Learn about collections of variables: data structures

  • Learn about objects - Learn about methods which allow you to do things to objects

Lecture 4:

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks

Lecture 5:

  • Learn about functions
  • Discover the joys of modules

Lecture 6:

  • get a first peek at the very useful Python packages called NumPy and matplotlib

Lecture 7:

  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.

Lecture 8:

  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas

Lecture 9

  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.

Lecture 10:

  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies

Lecture 11:

  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension

Lecture 12:

  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes

Lecture 13:

  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python

Lecture 14:

  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)

Lecture 15:

  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.

Lecture 16:

  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.

Lecture 17:

  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

Lecture 18:

  • start to make some basic maps using Cartopy. Yippee (we love maps).

Lecture 19:

  • Learn about gridding and contouring with cartopy
  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebook from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic python operating system commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.
  • Learn about variables
  • Learn about operations
  • Learn about collections of variables: data structures

  • Learn about objects

  • Learn about methods which allow you to do things to objects

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks
  • Learn about functions
  • Discover the joys of modules
  • get a first peek at the very useful Python packages called NumPy and matplotlib
  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.
  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas
  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.
  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies
  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension
  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes
  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python
  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)
  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.
  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.
  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • start to make some basic maps using Cartopy. Yippee (we love maps).

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • Learn about gridding and contouring with cartopy
  • Learn about geoplot and geopandas
  • Learn a bit about coordinate systems (UTM versus WGS84, as examples)
  • Learn something about Hawaiian volcanism
  • We will work with directional data using rose diagrams and stereonets
  • Learn some useful tricks about matrix math.
  • Learn how to plot great and small circles on an equal area net and map projections.
  • Find out about Machine Learning
  • Learn about using the scikit-learn python package for clustering analysis.
  • Apply clustering analysis to Earth Science problems
  • Learn how to use satellite imagery to understand land usage.
  • Learn how to use patches in matplotlib.
  • Learn about using the scikit-learn python package to classify data.
  • Learn about 3D plots of points and surfaces
  • Show some examples with subduction zone earthquakes and isotopic systems
  • Take a look at data with respect to time (time series)
  • Learn a bit about time series analysis.
  • Learn how to make and display animated gifs

About

No description, website, or topics provided.

Resources

Stars

126 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ltauxe/Python-for-Earth-Science-Students · GitHub
Skip to content

Latest commit

History

132 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Programming for Earth Science Students

Authors: Lisa Tauxe, ltauxe@ucsd.edu, Hanna Asefaw, hasefaw@ucs.dedu, & Brendan Cych, bcych@ucsd.edu

Licensing:

Shield: CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

Computers in Earth Science

Computers are essential to all modern Earth Science research. We use them for compiling and analyzing data, preparing illustrations like maps or data plots, writing manuscripts, and so on. In this class, you will learn to write computer programs with special applications useful to Earth Scientists. We will learn Python, an object-oriented programming language, and use Jupyter notebooks to write our Python programs.

Python

So, why learn Python? Because it is:

  • Flexible, freely available, cross platform
  • Easier to learn than many other languages
  • It has many numerical, statistical and visualization packages
  • It is well supported and has lots of online documentation
  • The name 'Python' refers to 'Monty Python' - not the snake - and many examples in the Python documentation use jokes from the old Monty Python skits. If you have never heard of Monty Python, look it up on youtube; you are in for a treat.

Which Python?

  • Python underwent a transition from 2.7 to 3. The notebooks in this class, apart from a few exceptions, are compatible with both but they have only been tested on Python 3, so that is what you should be using.
  • If you decide to use a personal computer, we recommend that you install the most recent version of Anaconda python for your operating system: https://www.anaconda.com/download/ you will also need a few extra packages (cartopy, version 0.17.0, geoplots, geopandas and a few others) which can be installed with little hassle.

Jupyter notebooks

This course is entirely structured around a special programming environment called Jupyter notebooks. A Jupyter notebook is a development environment where you can write, debug, and execute your programs.

Clone or download this repository and launch the Jupyter notebook environment.

To do this, you will need to discover the hidden secret of your computer, the Terminal window (or Anaconda Prompt on a PC). This little window provides a command line interface in which you can type commands to the operating system. You can find the terminal window through the program Terminal on a Mac by typing terminal.app into the search icon. If you double click on it, it will open a terminal window. To find it on a PC search for the program anaconda

Once you have launched the jupyter notebook browser, navigate to your course directory and open Lecture_01.ipynb

Lecture 1

  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebooks from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic UNIX commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.

Lecture 2

  • Learn about variables
  • Learn about operations

Lecture 3

  • Learn about collections of variables: data structures

  • Learn about objects - Learn about methods which allow you to do things to objects

Lecture 4:

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks

Lecture 5:

  • Learn about functions
  • Discover the joys of modules

Lecture 6:

  • get a first peek at the very useful Python packages called NumPy and matplotlib

Lecture 7:

  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.

Lecture 8:

  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas

Lecture 9

  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.

Lecture 10:

  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies

Lecture 11:

  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension

Lecture 12:

  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes

Lecture 13:

  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python

Lecture 14:

  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)

Lecture 15:

  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.

Lecture 16:

  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.

Lecture 17:

  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

Lecture 18:

  • start to make some basic maps using Cartopy. Yippee (we love maps).

Lecture 19:

  • Learn about gridding and contouring with cartopy
  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebook from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic python operating system commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.
  • Learn about variables
  • Learn about operations
  • Learn about collections of variables: data structures

  • Learn about objects

  • Learn about methods which allow you to do things to objects

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks
  • Learn about functions
  • Discover the joys of modules
  • get a first peek at the very useful Python packages called NumPy and matplotlib
  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.
  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas
  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.
  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies
  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension
  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes
  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python
  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)
  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.
  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.
  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • start to make some basic maps using Cartopy. Yippee (we love maps).

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • Learn about gridding and contouring with cartopy
  • Learn about geoplot and geopandas
  • Learn a bit about coordinate systems (UTM versus WGS84, as examples)
  • Learn something about Hawaiian volcanism
  • We will work with directional data using rose diagrams and stereonets
  • Learn some useful tricks about matrix math.
  • Learn how to plot great and small circles on an equal area net and map projections.
  • Find out about Machine Learning
  • Learn about using the scikit-learn python package for clustering analysis.
  • Apply clustering analysis to Earth Science problems
  • Learn how to use satellite imagery to understand land usage.
  • Learn how to use patches in matplotlib.
  • Learn about using the scikit-learn python package to classify data.
  • Learn about 3D plots of points and surfaces
  • Show some examples with subduction zone earthquakes and isotopic systems
  • Take a look at data with respect to time (time series)
  • Learn a bit about time series analysis.
  • Learn how to make and display animated gifs

About

No description, website, or topics provided.

Resources

Stars

126 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - ltauxe/Python-for-Earth-Science-Students · GitHub
Skip to content

Latest commit

History

132 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Programming for Earth Science Students

Authors: Lisa Tauxe, ltauxe@ucsd.edu, Hanna Asefaw, hasefaw@ucs.dedu, & Brendan Cych, bcych@ucsd.edu

Licensing:

Shield: CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

Computers in Earth Science

Computers are essential to all modern Earth Science research. We use them for compiling and analyzing data, preparing illustrations like maps or data plots, writing manuscripts, and so on. In this class, you will learn to write computer programs with special applications useful to Earth Scientists. We will learn Python, an object-oriented programming language, and use Jupyter notebooks to write our Python programs.

Python

So, why learn Python? Because it is:

  • Flexible, freely available, cross platform
  • Easier to learn than many other languages
  • It has many numerical, statistical and visualization packages
  • It is well supported and has lots of online documentation
  • The name 'Python' refers to 'Monty Python' - not the snake - and many examples in the Python documentation use jokes from the old Monty Python skits. If you have never heard of Monty Python, look it up on youtube; you are in for a treat.

Which Python?

  • Python underwent a transition from 2.7 to 3. The notebooks in this class, apart from a few exceptions, are compatible with both but they have only been tested on Python 3, so that is what you should be using.
  • If you decide to use a personal computer, we recommend that you install the most recent version of Anaconda python for your operating system: https://www.anaconda.com/download/ you will also need a few extra packages (cartopy, version 0.17.0, geoplots, geopandas and a few others) which can be installed with little hassle.

Jupyter notebooks

This course is entirely structured around a special programming environment called Jupyter notebooks. A Jupyter notebook is a development environment where you can write, debug, and execute your programs.

Clone or download this repository and launch the Jupyter notebook environment.

To do this, you will need to discover the hidden secret of your computer, the Terminal window (or Anaconda Prompt on a PC). This little window provides a command line interface in which you can type commands to the operating system. You can find the terminal window through the program Terminal on a Mac by typing terminal.app into the search icon. If you double click on it, it will open a terminal window. To find it on a PC search for the program anaconda

Once you have launched the jupyter notebook browser, navigate to your course directory and open Lecture_01.ipynb

Lecture 1

  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebooks from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic UNIX commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.

Lecture 2

  • Learn about variables
  • Learn about operations

Lecture 3

  • Learn about collections of variables: data structures

  • Learn about objects - Learn about methods which allow you to do things to objects

Lecture 4:

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks

Lecture 5:

  • Learn about functions
  • Discover the joys of modules

Lecture 6:

  • get a first peek at the very useful Python packages called NumPy and matplotlib

Lecture 7:

  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.

Lecture 8:

  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas

Lecture 9

  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.

Lecture 10:

  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies

Lecture 11:

  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension

Lecture 12:

  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes

Lecture 13:

  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python

Lecture 14:

  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)

Lecture 15:

  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.

Lecture 16:

  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.

Lecture 17:

  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

Lecture 18:

  • start to make some basic maps using Cartopy. Yippee (we love maps).

Lecture 19:

  • Learn about gridding and contouring with cartopy
  • Learn to find your command line interface.
  • Learn how to launch a Jupyter notebook from the command line interface
  • Learn basic notebook anatomy.
  • Learn some basic python operating system commands
  • Learn about the concept of PATH
  • Turn in your first practice problem notebook.
  • Learn about variables
  • Learn about operations
  • Learn about collections of variables: data structures

  • Learn about objects

  • Learn about methods which allow you to do things to objects

  • Learn more about another useful data structure, dictionaries and some of their methods
  • Introduce special Python code blocks
  • Learn about "for" loops, "while" loops and "if" blocks
  • Learn about functions
  • Discover the joys of modules
  • get a first peek at the very useful Python packages called NumPy and matplotlib
  • Learn more about NumPy and matplotlib
  • Learn more about NumPy arrays.
  • more about matplotlib: adding notes and saving images
  • about DataFrames and Series, two new data structures, that are part of the Pandas package
  • some basic filtering tricks with Pandas
  • how to read in and save data files with Pandas
  • Learn how to filter data with Pandas
  • Write a program to calculate the great circle distances between two known points.
  • Learn how to generate formatted strings for output.
  • Learn about "object oriented programming" (OOP)
  • Learn how to create a "class"
  • Learn more about namespaces
  • Learn more about copies
  • Learn about lambda functions
  • How to use map( ), filter( ), and reduce( )
  • Explore the joys of List, Set and dictionary comprehension
  • Tricks with pandas
  • Filtering
  • concatentating and merging dataframes
  • Learn a few more Pandas tricks
  • Learn how to make more complicated plots with matplotlib
  • Learn about the composition of the sun, solar system and Earth.
  • Learn about exceptions in python
  • Learn how to plot histograms and cumulative distributions
  • Learn how to get lists of random numbers
  • Learn about the topography of the Earth (hypsometric curve)
  • Learn some basic statisics - samples versus populations and empirical versus theorectical distributions.
  • Learn to calculate central tendencies, spreads.
  • Learn about significant figures and more about formatting output.
  • Learn some useful functions in NumPy and SciPy for simulating distributions and calculating statistics.
  • Learn how to deal with bivariate data (fitting lines, curves).
  • Apply line fitting to determine the age of the Universe. Cool.
  • Learn how to use the seaborn package to produce beautiful plots
  • Learn about kernel density estimates
  • Learn appropriate ways of representing different types of data

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • start to make some basic maps using Cartopy. Yippee (we love maps).

NB: This lecture may not work properly in the interactive online binder environement. (it requires cartopy==0.17.0 and that is not yet available)

  • Learn about gridding and contouring with cartopy
  • Learn about geoplot and geopandas
  • Learn a bit about coordinate systems (UTM versus WGS84, as examples)
  • Learn something about Hawaiian volcanism
  • We will work with directional data using rose diagrams and stereonets
  • Learn some useful tricks about matrix math.
  • Learn how to plot great and small circles on an equal area net and map projections.
  • Find out about Machine Learning
  • Learn about using the scikit-learn python package for clustering analysis.
  • Apply clustering analysis to Earth Science problems
  • Learn how to use satellite imagery to understand land usage.
  • Learn how to use patches in matplotlib.
  • Learn about using the scikit-learn python package to classify data.
  • Learn about 3D plots of points and surfaces
  • Show some examples with subduction zone earthquakes and isotopic systems
  • Take a look at data with respect to time (time series)
  • Learn a bit about time series analysis.
  • Learn how to make and display animated gifs

About

No description, website, or topics provided.

Resources

Stars

126 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages