====== Getting started at LSCE (by JYP) ====== Welcome to LSCE!\\ \\ You are probably reading this page because you are a new PhD or intern student, visitor, etc...\\ This page will help you survive your first steps at LSCE, at least survive using the computers (LSCE computers are your future best friends)...\\ \\ Reading this page will save your life (and a lot of time)!\\ \\ This page used to be for the newcomers in the //CLIM// and //ESTIMR// teams, but we can share information LOL ===== Miscellaneous information ===== A few useful links. Some have nothing to do with science and LSCE hardware/software resources! * [[#accessing_the_lsce_intranet|LSCE intranet]] * [[other:newppl:pub_transport|LSCE-related public transport]] * [[other:newppl:riealgo|Adding money online to your restaurant account]] * [[https://intranet.lsce.ipsl.fr/Phocea/Page/index.php?id=97|Survival kit and other information for CDD and interns]] (LSCE intranet) * [[https://www.universite-paris-saclay.fr/en/campus-life/international-welcome-desk|International welcome desk]] //Université Paris-Saclay supports international students, PhD students and researchers as soon as they arrive in France to ensure their stay take place under the best conditions// * [[https://logement.campus-paris-saclay.fr/| Trouver un logement dans une résidence universitaire]] (in French... //Finding a room in a student dorm//) * [[https://www.science-accueil.org/en/|Science Accueil]] * [[https://www.science-accueil.org/en/request-services/|Service request page]] * {{:other:newppl:uvsq-guide-du-personnel-nov2019.pdf|Guide du Personnel UVSQ}} ===== Phone directory, and map of the building ===== ==== Using existing information ==== * [[https://intranet.lsce.ipsl.fr/en/Phocea/Membres/Annuaire/index.php|Phone directory]] (intranet) * Dial **2** + ''NNNN'' (last 4 digits) to **call somebody at LSCE** (or CEA Saclay) from LSCE * Dial **0** + ''NNNNNNNNNNNNNNNNNNNN'' to **call somebody outside LSCE** from LSCE * Dial **18** to call FLS (CEA security & firemen) * [[https://intranet.lsce.ipsl.fr/Phocea/Page/index.php?id=312|Other security related phone numbers]] * Recommended: add the FLS full phone number to your cell phone * [[https://intranet.lsce.ipsl.fr/PlanLabo/index.html|701 and 714 map]] (intranet) ==== Updating the directory/map information ==== It's very important that you update **your** phone/office information when you arrive at LSCE, so that other people can find you using the tools above! === Finding YOUR phone number === Use the following sequence of keys on the phone in your office: - Select **MENU** (then use the downward arrow) - Select **PARAMETRES** (use the downward arrow) - Select **GENERAL** (use the downward arrow) - Select **MON NUMERO** * This will display your **2** + ''NNNN'' phone number * You can be called from outside with ''01 69 08 NN NN'' === Updating YOUR entry in the phone directory === - Find your name in the [[https://intranet.lsce.ipsl.fr/en/Phocea/Membres/Annuaire/index.php|intranet phone directory]] - Click on **Modifier mes coordonnées** (in blue on the right side) - Click on **Informations dans l'annuaire** and update the different fields - Click on **Envoyez votre demande** - Wait (for someone to validate your request) ===== The LSCE mailing lists ===== It is important to join the correct mailing lists, if you want to get all the information you need, on time. ==== The 'all' list ==== When your account is created, your email address should automatically be added to the the //all// list, that can be used to send mails to all the people working at LSCE. You will also get IPSL information through this list | [[all@lsce.ipsl.fr]] | Everybody at LSCE | | [[lsce-orme@lsce.ipsl.fr]] | People working at Orme | | [[lsce-gif@lsce.ipsl.fr]] | People working in Gif | Mails sent to these lists will reach lots of people. Think well **before** sending a mail to these lists! ==== The teams mailing lists ==== Ask your team leader to add you to your team's mailing list. Example below: the //CLIM// and //ESTIMR// lists ^ List ^ Team ^ Archive ^ | [[clim@lists.lsce.ipsl.fr]] | //clim// | [[https://lists.lsce.ipsl.fr/sympa/arc/clim]] | | [[estimr@lists.lsce.ipsl.fr]] | //estimr// | [[https://lists.lsce.ipsl.fr/sympa/arc/estimr]] | ==== Notes ==== * You have to be identified on the server to access most lists's details. Enter you login and email password in the //email address// and //pasword// fields at the top right of any mailing list web page * You may want/need to join other mailing lists (project specific, sports, ...). Check the [[https://lists.lsce.ipsl.fr/sympa/lists|list of lists]] to find about all the existing lists * It is possible to [[https://pmip2.lsce.ipsl.fr/lists.shtml|use mails to interact with the LSCE lists server]], rather than the web interface ===== Using your own computer at LSCE? ===== You can't connect your personal laptop to the LSCE wired network (aka //ethernet//), it will **not** work! The best you can do is use the [[https://intranet.lsce.ipsl.fr/informatique/en/wifi/index.php|Guest WiFi]] or [[https://intranet.lsce.ipsl.fr/informatique/en/wifi/eduroam.php|eduroam]] network, if your office is close enough to one of the access points. **Warning!** You **can't** connect directly to the //obelix// LSCE servers from the wifi network. You first have to connect to the ''ssh1.lsce.ipsl.fr'' //gateway// server, and then to ''obelix''. More details in [[other:ssh#lsce_servers|LSCE servers]] ===== Accessing the LSCE intranet ===== If you try to access the intranet **from outside the LSCE** network (including //eduroam//), your browser will open a ''login''/''password'' popup window. Use your LSCE login (not your email address!) and password\\ e.g. use ''jdoe'' and not ''jane.doe@lsce.ipsl.fr'' Intranet web site: https://intranet.lsce.ipsl.fr/ There is a lot of information available on the LSCE intranet, but you can only access it from a computer connected to the LSCE network Everything about the LSCE servers (and other software and hardware information): https://intranet.lsce.ipsl.fr/informatique/en/orme/index.php * Reading the mails with the [[https://agenda.lsce.ipsl.fr/|webmail]] or [[https://intranet.lsce.ipsl.fr/informatique/en/mail/thunderbird.php|Thunderbird]] * As soon as you have a LSCE e-mail address, make sure it is added to [[#the_teams_mailing_lists|you team's list]] * [[https://intranet.lsce.ipsl.fr/informatique/en/orme/imprimantes.php|Printers]] ===== Accessing the CEA Saclay intranet and other CEA web sites from a browser ===== LSCE is on the Paris-Saclay network (and **not on the CEA network**) It is therefore **not possible** to access the //CEA Saclay// intranet by just clicking on http://www-saclay.cea.fr/ from a computer on the LSCE wired network (or //eduroam//, or any network outside CEA) Use the following steps: - Start Chrome (or try another browser) * it is even better if you use a [[https://support.google.com/chrome/answer/95464?hl=en|Private/Incognito window]] to do this - Open the following link: https://vpn.cea.fr/ * ignore the possible security/certificate errors * this link will work from the Paris Saclay network, and ANY other location (e.g. home) OUTSIDE of CEA - Use your initials and badge number as the **login** (e.g. "//James Bond//" => "**jb007007**") and the number supplied by the //activIDentity// keyring, followed by your 4 digits personal code, as your **password** - Select the CEA web site you want from the "Aventail WorkPlace" portal * **Espace Sigma**: that's where you specify when you will be on holidays * **Intranet Saclay**: where you can get information about the CEA buses, CEA directory, security training registration and information, practical information, etc... * **Intranet du voyageur**: if you need to make a plane/train reservation * ... - Click on //logout// when you are done * ... and close your browser //Incognito// window if you used one ===== Setting up your desktop computer ===== You should receive a desktop/laptop connected to the LSCE network when you arrive. Please take the time to read the instructions below, that may help make your life easier ==== Windows computer ==== Read the [[other:index#windows_10_notes|Windows 10 notes]], especially the //Configuring Windows 10// section === Getting administrator's rights === \\ Make sure you know what you are doing and that you are not executing a virus asking you suspicious access rights!\\ If an application requests administrator's rights to install something or make changes to the computer, **and you are sure it's not a virus**, use the ''.\admin'' local account and the ''admin'' password you received when your computer was configured, or ask the [[.:starting?do=edit#getting_help_from_the_lsce_system_administrators|system administrators]]. ==== Linux computer ==== There are different window managers available, each one with different settings: you should the //Cinnamon// window manager (//xfce// is a bit too basic, and //Gnome// is not very convenient for doing actual work, and uses too much CPU). You can select the window manager by clicking on the little cogwheel below the password field, on the login screen. This is Linux, you are using it for work, you should be efficient, so you should be able to do most of your work by typing commands in a terminal. The true power is in the correct use of the command-line interfaces, rather than having to spend time finding where to click in the windows. You will find some [[#useful_documentation_for_beginners|Linux documentation]] below. === Using the root acount === \\ Do not use the root account or privileges if you don't know exactly what you are doing! Depending on what you need to do: * run a single command with the root access rights\\ **sudo //command//** * become root in a terminal\\ **sudo //su -//** * use the root password when a program asks for it. Be sure the programs have legitimate reasons to ask for the root password! ==== Mac ==== Sorry, you are (almost) on your own, but a Mac is soooo easy to use, right? 8-) Some useful mac links: * [[other:ssh#a_recommended_terminal_for_mac|A recommended terminal for Mac]] * [[other:x_conf#using_an_x_server_on_a_mac|Using an X server on a Mac]] * [[other:ssh#mac_ssh_agent|Mac ssh agent]] ===== Accessing the Windows cluster from a Linux computer ===== If you have a Linux computer, but need to use a Windows application, follow the instructions in the [[https://intranet.lsce.ipsl.fr/informatique/en/winsrv.php|Windows servers]] page. If you need to use a program that is missing on the Windows cluster, see the [[#getting_help_from_the_lsce_system_administrators|Help]] section. ===== Accessing the LSCE Linux servers ===== You have to [[other:ssh|use ssh]] to connect to the [[other:ssh#lsce_servers|LSCE Linux servers]], and [[other:ssh#copying_files_with_scp|use scp to copy files between servers]] If you are really in a hurry, go directly to the [[other:ssh#connecting_to_servers_commonly_used_by_lsce_users|Connecting to servers commonly used by LSCE users]] section, but it is important that you **read the full [[other:ssh|ssh documentation]] page at least once**! ===== Which Linux servers should you use? ===== ==== Working directly on your desktop ==== Always remember that **your local LSCE desktop/laptop can [[#accessing_remote_disks|access remote disks on the LSCE servers]]**. There are **lots** of things you can do directly on your **local** computer (displaying pdf, images, using a text editor, ...), rather than on the remote servers. For example, if a script running on the servers generates a pdf file, it is **more efficient** to open this pdf file using ''Acrobat''/''evince'' on your local computer, than by using ''evince'' on the server. ==== Available servers ==== * **The LSCE //gateway//**: ''ssh1.lsce.ipsl.fr'' * Use ''ssh ssh1.lsce.ipsl.fr'' when you are **outside the LSCE wired network**, before accessing any other LSCE server: * By **//outside LSCE//**, we mean that your computer is: * connected to the LSCE WiFi network (instead of the wired network) * or physically outside LSCE * You can also use ''ssh1'' when you are **copying files to/from outside LSCE** with ''scp'' or ssh-based tools * The ''ssh1'' gateway can **only** be used for copying files or accessing the LSCE interactive servers! * **You have to** connect to an ''obelix//NN//'' interactive server before doing any real work * **The LSCE interactive servers**: ''obelix//NN//'' (''obelix2'' to ''obelix5'') * Use ''ssh obelix'' to access the LSCE servers from **inside LSCE**.\\ The //load balancing// system will send you to the ''obelix//NN//'' server that has currently the smallest load. * By **//inside LSCE//**, we mean that: * your computer is connected to the LSCE **wired** network * or you are using the [[https://intranet.lsce.ipsl.fr/informatique/fr/vpn-forticlient.php#vpnlsce|LSCE VPN]] * or you have a //terminal// connected to the ''ssh1'' gateway * Never forget that you are **sharing** these interactive servers with other users! * Do not use too much CPU and/or memory for a long time. Heavy computation should be done on the [[https://intranet.lsce.ipsl.fr/informatique/en/calcul/batch.php|LSCE cluster]] * Learn how to [[other:newppl:starting#determining_the_load_of_a_linux_server|use the top command]] to determine the current load of a server and the CPU/memory usage of your processes ! * You can use one of the following commands if you want to know on which ''obelixNN'' you are * $ ssh obelix Last login: Mon Jun 3 08:49:53 2019 from somewhere $ echo $HOST obelix5 $ hostname obelix5 * In a python script, you can use the following to get some information * >>> import os >>> os.getlogin(), os.getenv('HOST') ('mylogin', 'obelix5') * **[[https://intranet.lsce.ipsl.fr/informatique/en/calcul/batch.php|The LSCE cluster]]** (aka the //batch system//)\\ Use this cluster for **//heavy duty// programs**, rather than killing the multi-users interactive servers * //Heavy duty// programs are programs that will prevent other users from working on the same server because these programs use a lot of CPU and/or memory for more than a few minutes. Ask your advisor, if you are not sure * The **''JupyterHub'' notebook servers**: * Read the [[other:python:starting#using_jupyterhub_servers|Using JupyterHub servers]] section of the //Working with Python// page * **The [[https://documentations.ipsl.fr/spirit/|IPSL Computing and Data Center]]**, aka //Mésocentre ESPRI// (''Spirit'' / ''SpiritX'' / ''HAL'') * Note: the ''Spirit''/''X'' clusters have replaced the ''ciclad''/''climserv'' cluster (in 2022) * You will need a specific account (different from your //LSCE// account) to access these servers and use data files that are already available/mirrored there (e.g. **''CMIPn'' data**).\\ **Do not duplicate** at LSCE data already available on IPSL servers and that you can process there! * [[https://documentations.ipsl.fr/spirit/getting_started/account.html|Requesting an IPSL account]] * [[https://documentations.ipsl.fr/spirit/|IPSL ESPRI Mesocenter documentation]] * [[https://documentations.ipsl.fr/spirit/spirit_clusters/head_nodes.html|spirit clusters]] * [[https://documentations.ipsl.fr/spirit/getting_started/support.html|Getting help]] * **The ''asterix//NN//'' servers**\\ Some wise LSCE elders may mention these servers, but they don't exist any more! ==== Which shell are you using? ==== It is important to know which //shell// you are using if you need to configure and tune your Linux account. The shell is basically the program that waits for you to type commands in a terminal and passes them to the computer If you are not sure which shell is running in your terminals, you can use ''echo $SHELL'' to find out: # Somewhere with tcsh > echo $SHELL /bin/tcsh # Somewhere else with bash $ echo $SHELL /bin/bash ==== Determining the load of a Linux server ==== If the Linux server you are working on seems slow, or if you want to get an idea of the resources **you** are using, you should use the ''top'' command >hostname obelix3 >top top - 17:48:51 up 8 days, 23:43, 29 users, load average: 1.22, 1.38, 1.98 Tasks: 324 total, 2 running, 320 sleeping, 2 stopped, 0 zombie Cpu(s): 12.6%us, 0.0%sy, 0.0%ni, 87.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 32877756k total, 14706188k used, 18171568k free, 21372k buffers Swap: 33554428k total, 1628972k used, 31925456k free, 14105940k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 10193 john 20 0 302m 4336 2272 R 100.0 0.0 7033:08 emacs 16504 john 20 0 110m 2008 1228 S 0.7 0.0 0:00.13 tcsh 26344 jane 20 0 1635m 20m 3880 S 0.3 0.1 0:44.90 ipython 1 root 20 0 21448 1108 892 S 0.0 0.0 0:01.61 init [...] The top lines give you some summary information about the system, but you should monitor the memory usage (''VIRT'' and ''RES''), ''CPU'' and ''TIME+'' columns. By default, ''top'' will will put the processes using the more CPU at the top (as shown above). You can see above that the ''emacs'' text editor has clearly crashed, because it should not use 100% CPU for such a long time * The ''TIME+'' information is in //minutes// (e.g. ''5432:01'' means //5432 minutes and 1 second//, ''25:15.20'' means //25 minutes, 15 seconds and 20% of 1 second//) * Memory usage: * ''%MEM'' (Kb): percentage of the total available **physical memory** used by a process. This is based on ''RES'', the **non-swapped physical memory** used by a process * ''VIRT'' (Kb): total amount of **virtual memory** (i.e. memory temporarily swapped/saved to disk) used by a process. It includes all code, data and shared libraries plus pages that have been swapped out and pages that have been mapped but not used * The ''free'' command can display the memory usage of a server at a given time. ''available'' is an estimation of how much memory is available for starting new applications, without swapping * % free -ht total used free shared buff/cache available Mem: 62G 1.5G 56G 11M 5.0G 60G Swap: 62G 1.7G 60G Total: 125G 3.3G 116G If you type ''M'', the processes will be sorted my memory usage, as shown below PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 16092 bob 20 0 8488m 8.1g 7912 R 99.6 25.9 1:41.38 idl 23256 john 20 0 232m 70m 2632 S 0.0 0.2 0:01.36 R 26344 jane 20 0 1635m 20m 3880 S 0.0 0.1 0:44.87 ipython 10619 bob 20 0 954m 9292 2664 S 0.0 0.0 0:40.67 gedit 1362 nslcd 20 0 442m 6056 2208 S 0.0 0.0 2:13.98 nslcd 10193 john 20 0 302m 4336 2272 R 99.9 0.0 7024:13 emacs [...] Other useful keys: | **q** | Quit | | **c** | Display the command line options of the running processes | | **u** | List only the processes of a specific user | | **M** | Sort by memory usage (''%MEM'' columun) | | **P** | Sort by CPU usage (''%CPU'' columun) (Default) | ==== Using the kill command to terminate processes ==== FIXME ''kill proc_number'' ''kill -9 -1'' ''qdel'' ===== Which disks should you use? ===== * It is very important to use the correct directories and make it easy for your advisor to find things after you have left * **Put the source codes, scripts and papers you are writing on a backed up disk** * The backed up disk at LSCE is [[#the_home_directory|home directory]]\\ You should have a few Gb available on //home//\\ Use the ''quota -s'' command to find out the exact amount * Put **temporary files** on a scratch disk (''scratch01'' at LSCE) * Do **NOT** put (big) data files on a backed up disk * Do not forget to clean your directories before you leave (ask your advisor what should be kept or cleaned) ==== Accessing remote disks ==== It is possible to **directly** access some disks on the LSCE servers from: * a Linux or Windows computer connected directly to the LSCE ethernet/wired network * or a remote computer using the [[https://intranet.lsce.ipsl.fr/informatique/fr/vpn-forticlient.php#vpnlsce|LSCE VPN]] For security reasons, only backed up disks and ''scratch01'' can be accessed from Windows with //dfs// e.g. if you have a ''/home/scratch01/your_lsce_login'' path on a Linux server, you can access it the following way from your desktop/laptop: * Linux computer: ''cd /home/scratch01/your_lsce_login'' * Windows computer explorer: ''\\dfshost\dfs\scratch01\your_lsce_login''\\ {{ :other:newppl:dfs_on_win.png?nolink |}} ==== The home directory ==== * **Location**: the location depends on the machine you are connected to in the current terminal * On the LSCE servers (obelixN): ''/home/users/your_lsce_login'' * Non LSCE servers: * TGCC: ''/ccc/cont003/home/dsm/your_tgcc_login''\\ You can find out the location of all your directories with ''ccc_home -a'' (use ''ccc_home -h'' to find out all the available options) * ciclad: ''/home/your_ciclad_login'' * On a local Linux desktop (lsceNNNN): ''/homel/your_lsce_login'' * The configuration files of your Linux account are stored in the //home// directory (use ''ls -a'' to see hidden files and directories). Ask your advisor if you should copy somebody else's configuration files * tcsh shell users: ''.cshrc'' and ''.login'' * bash shell users: ''.profile'' and ''.bashrc'' * [[other:emacs_doc|emacs text editor]]: ''.emacs'' * You can go to your home directory by typing ''cd'' (no arguments),\\ and to the home directory of somebody else with ''cd ~login_name'' * At LSCE, you can't read the content of somebody else's //home// directory by default * **Backup of the home directory on the LSCE servers**: YES! Every night * More details on the [[https://intranet.lsce.ipsl.fr/informatique/en/nsr/index.php|LSCE backup system]] page * Put the most important sources/scripts/data/papers in this directory * **Do not** use the //home// directory to store: * temporary files (use ''scratch01'') * big (or many) data files (use ''scratch01'' or a project specific disk) * Your home directory will be archived when your account is closed, so that you or your advisor can access it later, if required * **Backup of the TGCC home directory**: YES! * Use the following command to access the backup: ''cd ~/.snapshot'' * **Quota**: YES!\\ There is a limit to what you can store in your home directory. If you reach this limit, you may experience some seemingly random errors (can't connect to the servers, the new files have a 0 size, ...)\\ The example below shows how to determine the //quota// on the LSCE disks: you can never go above the size displayed in the ''limit column'', and you cannot stay more than 7 days above the limit displayed in the ''quota'' column! The ''grace'' column will display either ''None'' (you cannot write on the disk anymore, unless you get below the ''quota'' limit) or ''N days'' (you can use the disk, but you have ''N days'' to go below the ''quota'' limit)\\ > quota -s Disk quotas for user johndoe (uid 6369): Filesystem blocks quota limit grace files quota limit grace prolix3:/users/ 4658M 4883M 4981M 23503 0 0 ==== The scratch directory ==== Do not put anything in the scratch directory that you can't recreate with a program, or copy/download from somewhere else! * **Location**: ''/home/scratch01/your_lsce_login'' * **Backup**: NO * Use this directory for temporary and big data files * The files older than 6 months (and possibly older than 1 month) will be **automatically deleted** if there is not enough free space. See the [[https://intranet.lsce.ipsl.fr/informatique/en/disques.php|Scratch area]] section for more details on the retention policy * In other words, the files are guaranteed to stay 1 month and possibly longer * **Quota**: NO ==== Project specific directories ==== The data on these disks is probably not backed up... You are not protected against file deletion by mistake, or a disk crash (a major disk crash is not likely, but can happen) \\ You should store your source codes, scripts, notebooks, manuscripts, reports, figures, on a backed up directory, and only store on the project disks data downloaded from outside, or that you can regenerate with the backed up scripts * **Location**: ''/home/some_project_name/your_lsce_login'' * Ask your advisor if you should use a specific project directory and the technical details about it * Use this directory for storing the (big) data files that you can't store safely in the //scratch// directory, and should not store in the //home// directory * **Backup**: ask your advisor * **Quota**: ask your advisor ==== Determining the space used by directories ==== Your Linux environment may sometimes stop working correctly because you have exceeded the allowed quota on your disks (check your quotas with ''quota -s''). You can use the following command to get the size of all the directories and files in the current directory, sorted by size: ''du -sh * | sort -rh'' >cd /home/scratch01/johndoe /home/scratch01/johndoe >du -sh * | sort -rh 58M GLAC1DHiceF26.nc 47M dashboard 44M GLAC1DdrainagePointerF26ka.nc 15M octcdf 12M 1901.nc 3.2M cmake ... FIXME Add something about ''df'' ===== Which programs should you use? ===== Your advisor will let you know which (version of which) programs you should use. Some programs are available by default, and you have to use the ''module'' command to access other programs. ==== Which program am I using? ==== At any time, you can use the ''which'' command to determine where a program is located. The option to get the //version// information of a program may vary (launch the program without arguments, with ''-v'' or ''%%--%%v'', ...). > which ncdump /usr/bin/ncdump > ncdump ncdump [-c|-h] [-v ...] [[-b|-f] [c|f]] [-l len] [-n name] [-p n[,n]] [-k] [-x] [-s] [-t|-i] [-g ...] [-w] file [...] netcdf library version 4.3.3.1 of Dec 10 2015 16:44:18 $ > which python /usr/bin/python > python --version Python 2.7.5 ==== Using module to access optional programs ==== Most useful ''[[https://modules.readthedocs.io/|module]]'' options: * ''module list'': list the currently loaded modules * ''module avail [mod_name]'': list the available modules (or only the ones with a name starting with ''mod_name'') * ''module load module_a ... module_n'': load modules (automatically including dependencies) * ''module load module_a'': load default version of //module_a// * ''module load module_a/vvv'': load ''vvv'' version of //module_a// * ''module purge'': remove all modules Detailed example: > which ncview ncview: Command not found. > module list No Modulefiles Currently Loaded. > module avail ncview ncview/2.1.7 > module load ncview netcdf/4 > module list Currently Loaded Modulefiles: 1) ncview/2.1.7 2) netcdf/4 > which ncview /usr/local/install/ncview-2.1.7/bin/ncview > which ncdump /usr/local/install/netcdf-4.3.2/bin/ncdump ===== Useful documentation for beginners ===== ==== Linux/UNIX ==== * {{:other:newppl:unix_doc_jyp.pdf|UNIX_doc_JYP.pdf}}: some basic Linux documentation. Make sure you read it! - A list of the most useful commands - A tutorial * Useful Linux commands for working with (potentially big) text files ({{:other:newppl:houchesa4_updated.pdf}}) * Using [[other:ssh|ssh]] and [[other:ssh#copying_files_with_scp|scp]] ==== Text editors ==== A //jupyter notebook// is **not** a text editor! **You need a correct text editor to efficiently work with scripts and programs** {{ :other:newppl:real_programmers.png?direct&600 |}} [[https://www.explainxkcd.com/wiki/index.php/378:_Real_Programmers|xkcd & Real Programmers]] There are **lots of text editors available** on Linux computers/servers (''emacs'', ''nano'', ''vi'', ''vim'', ''gvim'', ''gedit'', ...). You can use them: * In basic **text terminals** * **If you only need to read a text file**, use a //pager// like [[http://www.greenwoodsoftware.com/less|less]] (or ''more''): ''less my_text_file.txt'' * ''SPACE'' goes down one page * ''b'' (//back//) goes back one page * ''/STRING'' looks for ''STRING'' in the text (then ''n''ext, ''p''revious, ''q''uit) * ''q'' exits * **[[#gnu_nano|nano]] is probably the easiest editor in text mode** to use! * Useful if you are in a hurry, and/or working on a remote server with a bad network connection or have no local [[other:x_conf|X server]] running * You should know the basic commands and shortcuts! * With a **full Graphical User Interface** (aka //GUI//) allowing you to use the mouse+menus/buttons/etc... * you will need to have a //local// [[other:x_conf|X server]] running, if you want to use the text editor GUI on a //remote// server === emacs === Read the **dedicated [[other:emacs_doc|Using emacs]] page**, and become a power user! === Gnu nano === Gnu [[https://www.nano-editor.org/|nano]] is probably the easiest text editor in text mode to use! You can easily view/edit a file by just typing ''nano my_text_file.txt'' in a terminal, and looking at the instructions displayed at the bottom of the screen (e.g. ''^X Exit'' means that you can exit the editor by typing ''CTRL-X'') === vi (vim, gvim) === * [[https://www.atmos.albany.edu/daes/atmclasses/atm350/vi_cheat_sheet.pdf|vi cheat sheet]] * [[https://web.mit.edu/merolish/Public/vi-ref.pdf|vi reference card]] === Notepad++ === [[other:win10apps#notepad|Notepad++]] is a nice and powerful text editor for **Windows**, but it is also very easy to [[other:emacs_doc#windows_installation|install emacs on Windows]] ==== NetCDF and related Conventions ==== === Super-short introduction to NetCDF === * What are binary ({{:other:newppl:binaire_jyp.pdf}}) and NetCDF ({{:other:newppl:netcdf_jyp.pdf}}) files? * A reminder about [[other:python:misc_by_jyp#numerical_values|numerical precision]] * [[http://www.unidata.ucar.edu/software/netcdf/|Network Common Data Form (NetCDF)]] official page * [[http://www.unidata.ucar.edu/software/netcdf/docs/faq.html#How-many-netCDF-formats-are-there-and-what-are-the-differences-among-them|The different netCDF formats]] (and do not forget to use ''ncdump -k data.nc'' if you need to know the format) * The NetCDF file format is **self-documented**, and the metadata of climate data files often follows the [[http://cfconventions.org/|CF (Climate and Forecast) Metadata Conventions]] * The files in the [[https://esgf-node.ipsl.upmc.fr/projects/esgf-ipsl/|CMIPn (n ≥ 5) database]] are written with the [[https://cmor.llnl.gov/|CMOR 3 library]] in order to make sure that they follow exactly the requested standards === Some ways of working with NetCDF without programming === * Displaying the content of a NetCDF file in a text format\\ Check the ''ncdump'' [[https://docs.unidata.ucar.edu/nug/current/netcdf_utilities_guide.html#ncdump_guide|options]]. People usually want to quickly check the metadata, and use other programs to work with the actual data * ''ncdump -h some_climate_data_file.nc'': only display the metadata (//h_eader// of the file) * ''ncdump some_climate_data_file.nc | less'': dump the **full** content to text, and use ''less'' to display it page by page * Maybe it is time to learn how to {{:other:newppl:houchesa4_updated.pdf|work efficiently with big text files}} * You can use [[other:win7apps#panoply|Panoply]] and [[http://meteora.ucsd.edu/~pierce/ncview_home_page.html|ncview]] for quickly visualizing NetCDF files * Manipulating NetCDF files: * [[https://code.zmaw.de/projects/cdo/wiki/Cdo#Documentation|Climate Data Operators]] (''cdo'') * Use ''[[#using_module_to_access_optional_programs|module]] load cdo'' on the LSCE and IPSL servers * [[http://nco.sourceforge.net/#RTFM|netCDF Operator]] (//NCO// operators) * Use ''[[#using_module_to_access_optional_programs|module]] load cdo'' on the LSCE and IPSL servers === NetCDF related Conventions === * [[http://cfconventions.org/|NetCDF CF (Climate and Forecast) Metadata Conventions]] * [[https://arxiv.org/abs/1911.08638|Gridspec: A standard for the description of grids used in Earth System models]] * A nice document for discovering the different type of (ir)regular grids used in climate models! * [[https://ugrid-conventions.github.io/ugrid-conventions/|UGRID Conventions]] for storing unstructured (or flexible mesh) model data * [[http://sgrid.github.io/sgrid/|SGRID Conventions]] for storing staggered data on structured grids that are consistent with the UGRID conventions === Using NetCDF with Python === Check the [[other:python:jyp_steps#using_netcdf_files_with_python|dedicated section]] of the //Python// page ==== Programming languages ==== * [[other:index#python_notes|JYP's Python notes]] ===== Getting help (from the LSCE system administrators) ===== Send a mail to //help-lsce// ==== Describing your problem ==== When you need help from the administrators or other people, it will save a lot of time if you describe your problem as accurately as possible (do **not** just report //XXXXX is not working as expected// !) You can copy-paste the error message(s). Finding the error //log file(s)// of the program/system (when available), or using the //verbose mode// of a program will make the problem resolution much easier and faster. The example below shows how to use the verbose mode of ''ssh'' >ssh -v obelix OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017 debug1: Reading configuration data /home/users/johndoe/.ssh/config debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 58: Applying options for * debug1: Connecting to obelix [157.136.72.75] port 22. debug1: Connection established. debug1: key_load_public: No such file or directory debug1: identity file /home/users/johndoe/.ssh/id_rsa type -1 [...] debug1: Entering interactive session. debug1: pledge: exec debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0 debug1: Requesting X11 forwarding with authentication spoofing. debug1: Sending environment. debug1: Sending env LANG = en_US Last login: Thu Mar 1 15:52:44 2018 from lsce4078.lsce.ipsl.fr > ==== Taking a screenshot ==== Sometimes, it may also help to send a picture of what is wrong! On Linux, you should find a screenshot application in the tools available on the system. See the example below for people using the //xfce// windows manager {{ :other:newppl:screenshot_xfce.jpg?200 |Click to get a larger version}} On Windows, you can use [[other:win10apps#snip_sketch|Snip & Sketch]], or the //Capture screen// option of [[other:win10apps#xnview_classic|XnView]] {{ :other:newppl:xnview_capture.jpg?200 |Click to get a larger version}} ===== Getting help, when using the IPSL Mesocenter (ESPRI) ===== Check the [[https://documentations.ipsl.fr/spirit/getting_started/support.html|ESPRI User Support]] page ===== What next? ===== Ask you advisor, who has probably already told you everything that was listed above, so you did not really learn anything new by reading this page /* standard page footer */ \\ \\ \\ ---- [ [[pmip3:|PMIP3 Wiki Home]] ] - [ [[pmip3:wiki_help|Help!]] ] - [ [[wiki:syntax|Wiki syntax]] ]