Difference between revisions of "UKCA Chemistry and Aerosol Tutorials: Python notebooks"

From UKCA
Line 26: Line 26:
 
The above instructions make use of some alias and shortcuts to work. The full details of this are:
 
The above instructions make use of some alias and shortcuts to work. The full details of this are:
   
=== On the desktop ===
+
=== On your personal computer ===
   
  +
==== Windows via MobaXTerm ====
The command <tt>jopen</tt> is set as an alias in the <tt>~/.bashrc</tt> to be
 
   
  +
On Windows you can use [https://mobaxterm.mobatek.net/ MobaXTerm] to connect to the AWS instance to tunnel through to allow you to run Jupyter remotely.
alias jopen='ssh -N -f -L localhost:4801:localhost:4801 ukca'
 
   
  +
You will need to open a local session, where you run the following command, e.g.
this is equivalent to
 
  +
  +
ssh -N -f -L localhost:4801:localhost:4801 -i /path/to/[KEY NAME] ubuntu@[EC2 VM IP ADDRESS]
  +
  +
Where <tt>/path/to/[KEY NAME]</tt> is the full path to the location of your private key file that you use to connect to the AWS instance.
  +
  +
==== SSH via a terminal (macOS or GNU/Linux) ====
  +
  +
You will be able to connect using the following SSH command:
   
 
ssh -N -f -L localhost:4801:localhost:4801 -i ~/.ssh/[KEY NAME] ubuntu@[EC2 VM IP ADDRESS]
 
ssh -N -f -L localhost:4801:localhost:4801 -i ~/.ssh/[KEY NAME] ubuntu@[EC2 VM IP ADDRESS]
   
but in the <tt>~/.ssh/config</tt> file there are the following settings
+
You could also edit your <tt>~/.ssh/config</tt> file to include the following
   
 
Host ukca
 
Host ukca
Line 43: Line 51:
 
IdentityFile ~/.ssh/[KEY NAME]
 
IdentityFile ~/.ssh/[KEY NAME]
 
HostKeyAlgorithms ssh-rsa
 
HostKeyAlgorithms ssh-rsa
  +
  +
and then connect by
  +
  +
ssh -N -f -L localhost:4801:localhost:4801 ukca
  +
  +
You could also make an alias in your <tt>~/.zshrc</tt> or <tt>~/.bashrc</tt>, e.g.
  +
 
alias jopen='ssh -N -f -L localhost:4801:localhost:4801 ukca'
  +
  +
and then use the command <tt>jopen</tt> from within your terminal.
   
 
=== On the virtual machine ===
 
=== On the virtual machine ===

Revision as of 14:38, 11 January 2024

UKCA Chemistry and Aerosol Tutorials at UMvn13.0

During these Tutorials several Jupyter notebooks are provided using both cf-python and the Iris Python libraries. On pre-installed virtual machines these can be found in the

Tutorials/UMvn13.0/notebooks

Due to the SSH connection you will be making to these virtual machines, it is better to run jupyter remotely and then connect to it from the browser on your desktop machine.

You could also use equivalent python scripts held in the

Tutorials/UMvn13.0/scripts

directory using the pyterm command to open a terminal that is able to run the necessary Python libraries.

How to connect

  1. On your VM, change directory using the cd command into the directory that you want to run the scripts from, e.g.
cd Tutorials/UMvn13.0/notebooks
  1. On your VM run the command jnotebook to start a jupyter notebook server, or jlab to start a jupyter lab server.
  2. On your personal desktop machine, open a connection to your AWS instance using one of the methods below.
  3. On your desktop machine, connect to the following web address using the Firefox web browser:

Technical notes

The above instructions make use of some alias and shortcuts to work. The full details of this are:

On your personal computer

Windows via MobaXTerm

On Windows you can use MobaXTerm to connect to the AWS instance to tunnel through to allow you to run Jupyter remotely.

You will need to open a local session, where you run the following command, e.g.

ssh -N -f -L localhost:4801:localhost:4801 -i /path/to/[KEY NAME] ubuntu@[EC2 VM IP ADDRESS]

Where /path/to/[KEY NAME] is the full path to the location of your private key file that you use to connect to the AWS instance.

SSH via a terminal (macOS or GNU/Linux)

You will be able to connect using the following SSH command:

ssh -N -f -L localhost:4801:localhost:4801 -i ~/.ssh/[KEY NAME] ubuntu@[EC2 VM IP ADDRESS]

You could also edit your ~/.ssh/config file to include the following

Host ukca
        Hostname [EC2 VM IP ADDRESS]
        User ubuntu
        IdentityFile ~/.ssh/[KEY NAME]
        HostKeyAlgorithms ssh-rsa

and then connect by

ssh -N -f -L localhost:4801:localhost:4801 ukca

You could also make an alias in your ~/.zshrc or ~/.bashrc, e.g.

alias jopen='ssh -N -f -L localhost:4801:localhost:4801 ukca'

and then use the command jopen from within your terminal.

On the virtual machine

The two alias are set in the ~/.bashrc file on the VM:

alias jlab="lxterminal -l -e 'export PATH=~/miniconda3/bin:$PATH && jupyter-lab --no-browser --port=4801'"
alias jnotebook="lxterminal -l -e 'export PATH=~/miniconda3/bin:$PATH && jupyter notebook --no-browser --port=4801'"

and the

/home/vagrant/.jupyter/jupyter_notebook_config.py

file has the following setting

c.NotebookApp.token = 'UKCATraining'

This means that when you run the command jnotebook or jlab you then launch a new terminal pointing to the python installation in the /home/vagrant/miniconda3/bin directory.

UKCA Chemistry and Aerosol Tutorials at UMvn13.0