Latest commit

History

82 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Intro 201804 Binder

This course was held in April / May 2018.

Preparation

1. Install Python on your computer

Follow https://conda.io/docs/user-guide/install/index.html#regular-installation to install Miniconda3 on your computer. Miniconda is essentially a package manager that we will use to install Python packages needed throughout the course / in your later work.

On Linux and MacOS, the installer will ask whether you want to add Miniconda / Conda to your path. Please choose to not add it to your path. (See below for why this is important.)

On Windows, install Miniconda to a hard drive with at least a few GB of free space. On Linux / MaxOS, the rest of this preparation guide will assume that you installed to ${HOME}/miniconda3/.

Note that you should choose Python 3: https://python3statement.org/

2. Set up the working environment

(This step will start / activate the root environment you installed in step 1 and then add an environment with all the packages we need in the course.)

Start a terminal (Linux / MacOS) or the Anaconda prompt (Windows). Activate the root (or base) environment of your Miniconda:

source${HOME}/miniconda3/bin/activate root # Linux / MacOS
activate root # Windows

And create an environment containing Python 3, Numpy, Matplotlib, scipy, Ipython, Jupyter, Jupyterlab, Pandas, Xarray, netCDF4, Cartopy, Basemap, ...:

conda create -n py3_std -c conda-forge python=3 basemap basemap-data-hires cartopy cf_units cmocean dask gsw haversine hdf5 ipython jupyter jupyterlab line_profiler matplotlib memory_profiler netCDF4 numpy pandas seaborn scipy seawater xarray

3. Activate the new environment

Now, activate the new environment:

source${HOME}/miniconda3/bin/activate py3_std # Linux / MacOS
activate py3_std # Windows

And start up Jupyterlab as a first test:

jupyter lab

Note that if Jupyter fails with a message "could not assign address", you need to explicitly choose the IP address for the jupyter server:

jupyter lab --ip=127.0.0.1

Why?

Why not add Miniconda to the path?

Adding things to the $PATH using the .bashrc or the .profile may, at first glance, seem comfortable. There are, however, a few reasons for not doing so:

  1. The Python env really is a minimal one. But Python is used by many different tools on your computer which probably expect that just calling python will use the Python (and additional packages) installed by the operating system. None of these will be available to Miniconda's Python.

  2. The conda environment we added above contains binary dependencies (such as a libnetcdf) of the packages we installed. You don't want these to be the defaults when, e.g., compiling software that has nothing to do with your work in Python.

Why don't we just conda install everything right after installing Miniconda?

Working with environments provides an easy way of choosing packages and even specific versions for different projects / tasks. You might want to freeze the environment for some project (like a paper, where you want to make sure that plots don't change just because the new Matplotlib does something different than the old one) while in another project, you might want to go for more recent versions.

This video has a great intro to managing different working environments for different projects: https://www.youtube.com/watch?v=cY2NXB_Tqq0

Credits

This course was partly inspired by: https://rabernat.github.io/research_computing/

We downloaded sea-level data from: PEGELONLINE

We use annual-mean data from the Baltic Sea-Ice Ocean Model BSIOM.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n 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;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

82 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Intro 201804 Binder

This course was held in April / May 2018.

Preparation

1. Install Python on your computer

Follow https://conda.io/docs/user-guide/install/index.html#regular-installation to install Miniconda3 on your computer. Miniconda is essentially a package manager that we will use to install Python packages needed throughout the course / in your later work.

On Linux and MacOS, the installer will ask whether you want to add Miniconda / Conda to your path. Please choose to not add it to your path. (See below for why this is important.)

On Windows, install Miniconda to a hard drive with at least a few GB of free space. On Linux / MaxOS, the rest of this preparation guide will assume that you installed to ${HOME}/miniconda3/.

Note that you should choose Python 3: https://python3statement.org/

2. Set up the working environment

(This step will start / activate the root environment you installed in step 1 and then add an environment with all the packages we need in the course.)

Start a terminal (Linux / MacOS) or the Anaconda prompt (Windows). Activate the root (or base) environment of your Miniconda:

source${HOME}/miniconda3/bin/activate root # Linux / MacOS
activate root # Windows

And create an environment containing Python 3, Numpy, Matplotlib, scipy, Ipython, Jupyter, Jupyterlab, Pandas, Xarray, netCDF4, Cartopy, Basemap, ...:

conda create -n py3_std -c conda-forge python=3 basemap basemap-data-hires cartopy cf_units cmocean dask gsw haversine hdf5 ipython jupyter jupyterlab line_profiler matplotlib memory_profiler netCDF4 numpy pandas seaborn scipy seawater xarray

3. Activate the new environment

Now, activate the new environment:

source${HOME}/miniconda3/bin/activate py3_std # Linux / MacOS
activate py3_std # Windows

And start up Jupyterlab as a first test:

jupyter lab

Note that if Jupyter fails with a message "could not assign address", you need to explicitly choose the IP address for the jupyter server:

jupyter lab --ip=127.0.0.1

Why?

Why not add Miniconda to the path?

Adding things to the $PATH using the .bashrc or the .profile may, at first glance, seem comfortable. There are, however, a few reasons for not doing so:

  1. The Python env really is a minimal one. But Python is used by many different tools on your computer which probably expect that just calling python will use the Python (and additional packages) installed by the operating system. None of these will be available to Miniconda's Python.

  2. The conda environment we added above contains binary dependencies (such as a libnetcdf) of the packages we installed. You don't want these to be the defaults when, e.g., compiling software that has nothing to do with your work in Python.

Why don't we just conda install everything right after installing Miniconda?

Working with environments provides an easy way of choosing packages and even specific versions for different projects / tasks. You might want to freeze the environment for some project (like a paper, where you want to make sure that plots don't change just because the new Matplotlib does something different than the old one) while in another project, you might want to go for more recent versions.

This video has a great intro to managing different working environments for different projects: https://www.youtube.com/watch?v=cY2NXB_Tqq0

Credits

This course was partly inspired by: https://rabernat.github.io/research_computing/

We downloaded sea-level data from: PEGELONLINE

We use annual-mean data from the Baltic Sea-Ice Ocean Model BSIOM.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

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

Latest commit

History

82 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Intro 201804 Binder

This course was held in April / May 2018.

Preparation

1. Install Python on your computer

Follow https://conda.io/docs/user-guide/install/index.html#regular-installation to install Miniconda3 on your computer. Miniconda is essentially a package manager that we will use to install Python packages needed throughout the course / in your later work.

On Linux and MacOS, the installer will ask whether you want to add Miniconda / Conda to your path. Please choose to not add it to your path. (See below for why this is important.)

On Windows, install Miniconda to a hard drive with at least a few GB of free space. On Linux / MaxOS, the rest of this preparation guide will assume that you installed to ${HOME}/miniconda3/.

Note that you should choose Python 3: https://python3statement.org/

2. Set up the working environment

(This step will start / activate the root environment you installed in step 1 and then add an environment with all the packages we need in the course.)

Start a terminal (Linux / MacOS) or the Anaconda prompt (Windows). Activate the root (or base) environment of your Miniconda:

source${HOME}/miniconda3/bin/activate root # Linux / MacOS
activate root # Windows

And create an environment containing Python 3, Numpy, Matplotlib, scipy, Ipython, Jupyter, Jupyterlab, Pandas, Xarray, netCDF4, Cartopy, Basemap, ...:

conda create -n py3_std -c conda-forge python=3 basemap basemap-data-hires cartopy cf_units cmocean dask gsw haversine hdf5 ipython jupyter jupyterlab line_profiler matplotlib memory_profiler netCDF4 numpy pandas seaborn scipy seawater xarray

3. Activate the new environment

Now, activate the new environment:

source${HOME}/miniconda3/bin/activate py3_std # Linux / MacOS
activate py3_std # Windows

And start up Jupyterlab as a first test:

jupyter lab

Note that if Jupyter fails with a message "could not assign address", you need to explicitly choose the IP address for the jupyter server:

jupyter lab --ip=127.0.0.1

Why?

Why not add Miniconda to the path?

Adding things to the $PATH using the .bashrc or the .profile may, at first glance, seem comfortable. There are, however, a few reasons for not doing so:

  1. The Python env really is a minimal one. But Python is used by many different tools on your computer which probably expect that just calling python will use the Python (and additional packages) installed by the operating system. None of these will be available to Miniconda's Python.

  2. The conda environment we added above contains binary dependencies (such as a libnetcdf) of the packages we installed. You don't want these to be the defaults when, e.g., compiling software that has nothing to do with your work in Python.

Why don't we just conda install everything right after installing Miniconda?

Working with environments provides an easy way of choosing packages and even specific versions for different projects / tasks. You might want to freeze the environment for some project (like a paper, where you want to make sure that plots don't change just because the new Matplotlib does something different than the old one) while in another project, you might want to go for more recent versions.

This video has a great intro to managing different working environments for different projects: https://www.youtube.com/watch?v=cY2NXB_Tqq0

Credits

This course was partly inspired by: https://rabernat.github.io/research_computing/

We downloaded sea-level data from: PEGELONLINE

We use annual-mean data from the Baltic Sea-Ice Ocean Model BSIOM.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

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

Latest commit

History

82 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Intro 201804 Binder

This course was held in April / May 2018.

Preparation

1. Install Python on your computer

Follow https://conda.io/docs/user-guide/install/index.html#regular-installation to install Miniconda3 on your computer. Miniconda is essentially a package manager that we will use to install Python packages needed throughout the course / in your later work.

On Linux and MacOS, the installer will ask whether you want to add Miniconda / Conda to your path. Please choose to not add it to your path. (See below for why this is important.)

On Windows, install Miniconda to a hard drive with at least a few GB of free space. On Linux / MaxOS, the rest of this preparation guide will assume that you installed to ${HOME}/miniconda3/.

Note that you should choose Python 3: https://python3statement.org/

2. Set up the working environment

(This step will start / activate the root environment you installed in step 1 and then add an environment with all the packages we need in the course.)

Start a terminal (Linux / MacOS) or the Anaconda prompt (Windows). Activate the root (or base) environment of your Miniconda:

source${HOME}/miniconda3/bin/activate root # Linux / MacOS
activate root # Windows

And create an environment containing Python 3, Numpy, Matplotlib, scipy, Ipython, Jupyter, Jupyterlab, Pandas, Xarray, netCDF4, Cartopy, Basemap, ...:

conda create -n py3_std -c conda-forge python=3 basemap basemap-data-hires cartopy cf_units cmocean dask gsw haversine hdf5 ipython jupyter jupyterlab line_profiler matplotlib memory_profiler netCDF4 numpy pandas seaborn scipy seawater xarray

3. Activate the new environment

Now, activate the new environment:

source${HOME}/miniconda3/bin/activate py3_std # Linux / MacOS
activate py3_std # Windows

And start up Jupyterlab as a first test:

jupyter lab

Note that if Jupyter fails with a message "could not assign address", you need to explicitly choose the IP address for the jupyter server:

jupyter lab --ip=127.0.0.1

Why?

Why not add Miniconda to the path?

Adding things to the $PATH using the .bashrc or the .profile may, at first glance, seem comfortable. There are, however, a few reasons for not doing so:

  1. The Python env really is a minimal one. But Python is used by many different tools on your computer which probably expect that just calling python will use the Python (and additional packages) installed by the operating system. None of these will be available to Miniconda's Python.

  2. The conda environment we added above contains binary dependencies (such as a libnetcdf) of the packages we installed. You don't want these to be the defaults when, e.g., compiling software that has nothing to do with your work in Python.

Why don't we just conda install everything right after installing Miniconda?

Working with environments provides an easy way of choosing packages and even specific versions for different projects / tasks. You might want to freeze the environment for some project (like a paper, where you want to make sure that plots don't change just because the new Matplotlib does something different than the old one) while in another project, you might want to go for more recent versions.

This video has a great intro to managing different working environments for different projects: https://www.youtube.com/watch?v=cY2NXB_Tqq0

Credits

This course was partly inspired by: https://rabernat.github.io/research_computing/

We downloaded sea-level data from: PEGELONLINE

We use annual-mean data from the Baltic Sea-Ice Ocean Model BSIOM.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

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

Latest commit

History

82 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Intro 201804 Binder

This course was held in April / May 2018.

Preparation

1. Install Python on your computer

Follow https://conda.io/docs/user-guide/install/index.html#regular-installation to install Miniconda3 on your computer. Miniconda is essentially a package manager that we will use to install Python packages needed throughout the course / in your later work.

On Linux and MacOS, the installer will ask whether you want to add Miniconda / Conda to your path. Please choose to not add it to your path. (See below for why this is important.)

On Windows, install Miniconda to a hard drive with at least a few GB of free space. On Linux / MaxOS, the rest of this preparation guide will assume that you installed to ${HOME}/miniconda3/.

Note that you should choose Python 3: https://python3statement.org/

2. Set up the working environment

(This step will start / activate the root environment you installed in step 1 and then add an environment with all the packages we need in the course.)

Start a terminal (Linux / MacOS) or the Anaconda prompt (Windows). Activate the root (or base) environment of your Miniconda:

source${HOME}/miniconda3/bin/activate root # Linux / MacOS
activate root # Windows

And create an environment containing Python 3, Numpy, Matplotlib, scipy, Ipython, Jupyter, Jupyterlab, Pandas, Xarray, netCDF4, Cartopy, Basemap, ...:

conda create -n py3_std -c conda-forge python=3 basemap basemap-data-hires cartopy cf_units cmocean dask gsw haversine hdf5 ipython jupyter jupyterlab line_profiler matplotlib memory_profiler netCDF4 numpy pandas seaborn scipy seawater xarray

3. Activate the new environment

Now, activate the new environment:

source${HOME}/miniconda3/bin/activate py3_std # Linux / MacOS
activate py3_std # Windows

And start up Jupyterlab as a first test:

jupyter lab

Note that if Jupyter fails with a message "could not assign address", you need to explicitly choose the IP address for the jupyter server:

jupyter lab --ip=127.0.0.1

Why?

Why not add Miniconda to the path?

Adding things to the $PATH using the .bashrc or the .profile may, at first glance, seem comfortable. There are, however, a few reasons for not doing so:

  1. The Python env really is a minimal one. But Python is used by many different tools on your computer which probably expect that just calling python will use the Python (and additional packages) installed by the operating system. None of these will be available to Miniconda's Python.

  2. The conda environment we added above contains binary dependencies (such as a libnetcdf) of the packages we installed. You don't want these to be the defaults when, e.g., compiling software that has nothing to do with your work in Python.

Why don't we just conda install everything right after installing Miniconda?

Working with environments provides an easy way of choosing packages and even specific versions for different projects / tasks. You might want to freeze the environment for some project (like a paper, where you want to make sure that plots don't change just because the new Matplotlib does something different than the old one) while in another project, you might want to go for more recent versions.

This video has a great intro to managing different working environments for different projects: https://www.youtube.com/watch?v=cY2NXB_Tqq0

Credits

This course was partly inspired by: https://rabernat.github.io/research_computing/

We downloaded sea-level data from: PEGELONLINE

We use annual-mean data from the Baltic Sea-Ice Ocean Model BSIOM.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

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

Latest commit

History

82 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Intro 201804 Binder

This course was held in April / May 2018.

Preparation

1. Install Python on your computer

Follow https://conda.io/docs/user-guide/install/index.html#regular-installation to install Miniconda3 on your computer. Miniconda is essentially a package manager that we will use to install Python packages needed throughout the course / in your later work.

On Linux and MacOS, the installer will ask whether you want to add Miniconda / Conda to your path. Please choose to not add it to your path. (See below for why this is important.)

On Windows, install Miniconda to a hard drive with at least a few GB of free space. On Linux / MaxOS, the rest of this preparation guide will assume that you installed to ${HOME}/miniconda3/.

Note that you should choose Python 3: https://python3statement.org/

2. Set up the working environment

(This step will start / activate the root environment you installed in step 1 and then add an environment with all the packages we need in the course.)

Start a terminal (Linux / MacOS) or the Anaconda prompt (Windows). Activate the root (or base) environment of your Miniconda:

source${HOME}/miniconda3/bin/activate root # Linux / MacOS
activate root # Windows

And create an environment containing Python 3, Numpy, Matplotlib, scipy, Ipython, Jupyter, Jupyterlab, Pandas, Xarray, netCDF4, Cartopy, Basemap, ...:

conda create -n py3_std -c conda-forge python=3 basemap basemap-data-hires cartopy cf_units cmocean dask gsw haversine hdf5 ipython jupyter jupyterlab line_profiler matplotlib memory_profiler netCDF4 numpy pandas seaborn scipy seawater xarray

3. Activate the new environment

Now, activate the new environment:

source${HOME}/miniconda3/bin/activate py3_std # Linux / MacOS
activate py3_std # Windows

And start up Jupyterlab as a first test:

jupyter lab

Note that if Jupyter fails with a message "could not assign address", you need to explicitly choose the IP address for the jupyter server:

jupyter lab --ip=127.0.0.1

Why?

Why not add Miniconda to the path?

Adding things to the $PATH using the .bashrc or the .profile may, at first glance, seem comfortable. There are, however, a few reasons for not doing so:

  1. The Python env really is a minimal one. But Python is used by many different tools on your computer which probably expect that just calling python will use the Python (and additional packages) installed by the operating system. None of these will be available to Miniconda's Python.

  2. The conda environment we added above contains binary dependencies (such as a libnetcdf) of the packages we installed. You don't want these to be the defaults when, e.g., compiling software that has nothing to do with your work in Python.

Why don't we just conda install everything right after installing Miniconda?

Working with environments provides an easy way of choosing packages and even specific versions for different projects / tasks. You might want to freeze the environment for some project (like a paper, where you want to make sure that plots don't change just because the new Matplotlib does something different than the old one) while in another project, you might want to go for more recent versions.

This video has a great intro to managing different working environments for different projects: https://www.youtube.com/watch?v=cY2NXB_Tqq0

Credits

This course was partly inspired by: https://rabernat.github.io/research_computing/

We downloaded sea-level data from: PEGELONLINE

We use annual-mean data from the Baltic Sea-Ice Ocean Model BSIOM.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

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

Latest commit

History

82 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Intro 201804 Binder

This course was held in April / May 2018.

Preparation

1. Install Python on your computer

Follow https://conda.io/docs/user-guide/install/index.html#regular-installation to install Miniconda3 on your computer. Miniconda is essentially a package manager that we will use to install Python packages needed throughout the course / in your later work.

On Linux and MacOS, the installer will ask whether you want to add Miniconda / Conda to your path. Please choose to not add it to your path. (See below for why this is important.)

On Windows, install Miniconda to a hard drive with at least a few GB of free space. On Linux / MaxOS, the rest of this preparation guide will assume that you installed to ${HOME}/miniconda3/.

Note that you should choose Python 3: https://python3statement.org/

2. Set up the working environment

(This step will start / activate the root environment you installed in step 1 and then add an environment with all the packages we need in the course.)

Start a terminal (Linux / MacOS) or the Anaconda prompt (Windows). Activate the root (or base) environment of your Miniconda:

source${HOME}/miniconda3/bin/activate root # Linux / MacOS
activate root # Windows

And create an environment containing Python 3, Numpy, Matplotlib, scipy, Ipython, Jupyter, Jupyterlab, Pandas, Xarray, netCDF4, Cartopy, Basemap, ...:

conda create -n py3_std -c conda-forge python=3 basemap basemap-data-hires cartopy cf_units cmocean dask gsw haversine hdf5 ipython jupyter jupyterlab line_profiler matplotlib memory_profiler netCDF4 numpy pandas seaborn scipy seawater xarray

3. Activate the new environment

Now, activate the new environment:

source${HOME}/miniconda3/bin/activate py3_std # Linux / MacOS
activate py3_std # Windows

And start up Jupyterlab as a first test:

jupyter lab

Note that if Jupyter fails with a message "could not assign address", you need to explicitly choose the IP address for the jupyter server:

jupyter lab --ip=127.0.0.1

Why?

Why not add Miniconda to the path?

Adding things to the $PATH using the .bashrc or the .profile may, at first glance, seem comfortable. There are, however, a few reasons for not doing so:

  1. The Python env really is a minimal one. But Python is used by many different tools on your computer which probably expect that just calling python will use the Python (and additional packages) installed by the operating system. None of these will be available to Miniconda's Python.

  2. The conda environment we added above contains binary dependencies (such as a libnetcdf) of the packages we installed. You don't want these to be the defaults when, e.g., compiling software that has nothing to do with your work in Python.

Why don't we just conda install everything right after installing Miniconda?

Working with environments provides an easy way of choosing packages and even specific versions for different projects / tasks. You might want to freeze the environment for some project (like a paper, where you want to make sure that plots don't change just because the new Matplotlib does something different than the old one) while in another project, you might want to go for more recent versions.

This video has a great intro to managing different working environments for different projects: https://www.youtube.com/watch?v=cY2NXB_Tqq0

Credits

This course was partly inspired by: https://rabernat.github.io/research_computing/

We downloaded sea-level data from: PEGELONLINE

We use annual-mean data from the Baltic Sea-Ice Ocean Model BSIOM.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

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

Latest commit

History

82 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Python Intro 201804 Binder

This course was held in April / May 2018.

Preparation

1. Install Python on your computer

Follow https://conda.io/docs/user-guide/install/index.html#regular-installation to install Miniconda3 on your computer. Miniconda is essentially a package manager that we will use to install Python packages needed throughout the course / in your later work.

On Linux and MacOS, the installer will ask whether you want to add Miniconda / Conda to your path. Please choose to not add it to your path. (See below for why this is important.)

On Windows, install Miniconda to a hard drive with at least a few GB of free space. On Linux / MaxOS, the rest of this preparation guide will assume that you installed to ${HOME}/miniconda3/.

Note that you should choose Python 3: https://python3statement.org/

2. Set up the working environment

(This step will start / activate the root environment you installed in step 1 and then add an environment with all the packages we need in the course.)

Start a terminal (Linux / MacOS) or the Anaconda prompt (Windows). Activate the root (or base) environment of your Miniconda:

source${HOME}/miniconda3/bin/activate root # Linux / MacOS
activate root # Windows

And create an environment containing Python 3, Numpy, Matplotlib, scipy, Ipython, Jupyter, Jupyterlab, Pandas, Xarray, netCDF4, Cartopy, Basemap, ...:

conda create -n py3_std -c conda-forge python=3 basemap basemap-data-hires cartopy cf_units cmocean dask gsw haversine hdf5 ipython jupyter jupyterlab line_profiler matplotlib memory_profiler netCDF4 numpy pandas seaborn scipy seawater xarray

3. Activate the new environment

Now, activate the new environment:

source${HOME}/miniconda3/bin/activate py3_std # Linux / MacOS
activate py3_std # Windows

And start up Jupyterlab as a first test:

jupyter lab

Note that if Jupyter fails with a message "could not assign address", you need to explicitly choose the IP address for the jupyter server:

jupyter lab --ip=127.0.0.1

Why?

Why not add Miniconda to the path?

Adding things to the $PATH using the .bashrc or the .profile may, at first glance, seem comfortable. There are, however, a few reasons for not doing so:

  1. The Python env really is a minimal one. But Python is used by many different tools on your computer which probably expect that just calling python will use the Python (and additional packages) installed by the operating system. None of these will be available to Miniconda's Python.

  2. The conda environment we added above contains binary dependencies (such as a libnetcdf) of the packages we installed. You don't want these to be the defaults when, e.g., compiling software that has nothing to do with your work in Python.

Why don't we just conda install everything right after installing Miniconda?

Working with environments provides an easy way of choosing packages and even specific versions for different projects / tasks. You might want to freeze the environment for some project (like a paper, where you want to make sure that plots don't change just because the new Matplotlib does something different than the old one) while in another project, you might want to go for more recent versions.

This video has a great intro to managing different working environments for different projects: https://www.youtube.com/watch?v=cY2NXB_Tqq0

Credits

This course was partly inspired by: https://rabernat.github.io/research_computing/

We downloaded sea-level data from: PEGELONLINE

We use annual-mean data from the Baltic Sea-Ice Ocean Model BSIOM.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages