<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Computing Centre Tutorials Archives - Institute of Numerical Modelling</title>
	<atom:link href="https://modinst.lu.lv/en/category/computing-centre/feed/" rel="self" type="application/rss+xml" />
	<link>https://modinst.lu.lv/en/category/computing-centre/</link>
	<description>Scientific Institute of the University of Latvia</description>
	<lastBuildDate>Mon, 08 Mar 2021 09:51:30 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>Capabilities of Singularity containers</title>
		<link>https://modinst.lu.lv/en/singularity-containers/</link>
		
		<dc:creator><![CDATA[Mihaēls Doroņins]]></dc:creator>
		<pubDate>Fri, 05 Mar 2021 07:11:39 +0000</pubDate>
				<category><![CDATA[Computing Centre Tutorials]]></category>
		<category><![CDATA[News]]></category>
		<guid isPermaLink="false">https://modinst.lu.lv/?p=2243</guid>

					<description><![CDATA[<p>About this material This guide has been developed as support material for March 5, 2021, online seminar “Singularity Container Capabilities”. This event has been made possible by the EuroHPC project “National Competence Centers in the framework of EuroHPC” (EuroCC). This project has started on September 1, 2020, and Latvia is represented in this project by [&#8230;]</p>
<p>The post <a href="https://modinst.lu.lv/en/singularity-containers/">Capabilities of Singularity containers</a> appeared first on <a href="https://modinst.lu.lv/en/">Institute of Numerical Modelling</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">About this material</h2>



<p>This guide has been developed as support material for March 5, 2021, online seminar “Singularity Container Capabilities”. This event has been made possible by the EuroHPC project “National Competence Centers in the framework of EuroHPC” (EuroCC). This project has started on September 1, 2020, and Latvia is represented in this project by the HPC Center of Riga Technical University together with the Institute of Numerical Modelling of the University of Latvia. The EuroCC project aims to create a European network of supercomputing competence centres. 33 countries are involved in the project; it will last for 2 years with total funding of more than 56 million EUR.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/03/logo_EuroCC.png" alt="" class="wp-image-2231" width="183" height="158" srcset="https://modinst.lu.lv/wp-content/uploads/2021/03/logo_EuroCC.png 900w, https://modinst.lu.lv/wp-content/uploads/2021/03/logo_EuroCC-300x259.png 300w, https://modinst.lu.lv/wp-content/uploads/2021/03/logo_EuroCC-768x664.png 768w, https://modinst.lu.lv/wp-content/uploads/2021/03/logo_EuroCC-705x609.png 705w" sizes="(max-width: 183px) 100vw, 183px" /></figure></div>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/03/logo_RTU-1030x1023.png" alt="" class="wp-image-2232" width="156" height="155" srcset="https://modinst.lu.lv/wp-content/uploads/2021/03/logo_RTU-1030x1023.png 1030w, https://modinst.lu.lv/wp-content/uploads/2021/03/logo_RTU-300x298.png 300w, https://modinst.lu.lv/wp-content/uploads/2021/03/logo_RTU-80x80.png 80w, https://modinst.lu.lv/wp-content/uploads/2021/03/logo_RTU-768x763.png 768w, https://modinst.lu.lv/wp-content/uploads/2021/03/logo_RTU-1536x1526.png 1536w, https://modinst.lu.lv/wp-content/uploads/2021/03/logo_RTU-2048x2035.png 2048w, https://modinst.lu.lv/wp-content/uploads/2021/03/logo_RTU-36x36.png 36w, https://modinst.lu.lv/wp-content/uploads/2021/03/logo_RTU-180x180.png 180w, https://modinst.lu.lv/wp-content/uploads/2021/03/logo_RTU-1500x1490.png 1500w, https://modinst.lu.lv/wp-content/uploads/2021/03/logo_RTU-705x701.png 705w" sizes="(max-width: 156px) 100vw, 156px" /></figure></div>
</div>
</div>



<p>The task of the competence centres established during the project will be to create a unified support structure to promote the use of supercomputing opportunities in higher education, research, public administration, and industry. The Competence Centres will bring together the competencies, experience, and computing resources available in all EU countries.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div class='avia-iframe-wrap'><iframe title="Seminārs &quot;Singularity konteineru iespējas&quot;" width="1500" height="844" src="https://www.youtube.com/embed/WNhxZyj-XUk?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>
</div></figure>



<h2 class="wp-block-heading">Introduction</h2>



<p>When using high-performance computing (HPC) resources, it often becomes important to use non-standard software that is not available in the form of installed, ready-to-use software modules. In this situation, you can ask the administrator for help installing the software. But often this does not completely solve the problem:</p>



<ul class="wp-block-list"><li>The desired software may not be compatible with the operating system used in the cluster.</li><li>Many different software packages with specific versions need to be installed.</li><li>The user may want to use an identical environment on different clusters/workstations.</li></ul>



<p>In the described situation, it is very suitable to use the software in the form of containers – a fully equipped and encapsulated software environment, which allows you to perform your desired calculation tasks on different systems. To use the required software environment (container), all you have to do is copy/obtain the desired container file.</p>



<h2 class="wp-block-heading">Demonstration of basic functionality</h2>



<p>Below is an example of the basic functionality of software containers on the LU INM HPC cluster. The example considers a case where a container with <em>Anaconda Python</em> is already stored in a user&#8217;s folder (a tool with a series of <em>Python </em>tools that is typically used to process HPC data with <em>Python</em>).</p>



<pre class="wp-block-code"><code># See that base OS offers only old and incomplete Python version (2.x.x.)
python --version

# It is possible to use software module provided by the administrators
# See that the module indeed offers feature-rich Anaconda Python (3.x.x.)
module avail
module load anaconda3/anaconda-2020.11
python --version

# However, there is an alternative – use of containers!
# Detach previously loaded modules
module purge

# Load 'singularity' module
module load singularity/3.4.1

# Use of available container (for executing a single command)
# See that, indeed, container features Anaconda Python (3.x.x.)
singularity exec ~/my_containers/my_anaconda.simg python --version

# Use of available container (for interactive shell)
singularity shell ~/my_containers/my_anaconda.simg
python --version

# While being in the container, see that all the user files are accessible
ls ~
</code></pre>



<p>From the example shown, it can be seen that containers provide the use of a particular software environment. However, it is not as cumbersome as using a separate virtual machine, which is usually not possible or suitable for HPC clusters. It should be noted that the use of containers can, of course, be specified in queue system scripts like any other command.</p>



<h2 class="wp-block-heading"><em>Singularity </em>and <em>Docker </em>comparison</h2>



<p>In recent years, software containerization has gained popularity in the form of the widely used platform Docker – the community of this platform has created many different, freely available container images in the <a href="https://hub.docker.com/" target="_blank" rel="noreferrer noopener"><em>DockerHub</em></a> repository. However, there is an alternative containerization solution that is more suitable and popular in the HPC environment: <a href="https://sylabs.io/docs/" target="_blank" rel="noreferrer noopener"><em>Singularity</em></a>. This solution has several advantages that make it particularly suitable for HPC:</p>



<ul class="wp-block-list"><li>Unlike <em>Docker</em>, the use of <em>Singularity </em>containers does not require administrator rights. This allows you to make full use of these containers in an HPC environment. (Administrator rights are still required to create containers, however.)</li><li>Singularity containers offer ready-made solutions for parallel calculations (OpenMPI) as well as GPU calculations.</li><li>Singularity is compatible with Docker containers, allowing you to take advantage of the points above while allowing the use of the <em>DockerHub </em>repository.</li></ul>



<p>Based on these advantages, as well as the fact that Singularity is available on both the LU INM cluster and the RTU HPC Center cluster, this guide specifically addresses the use of Singularity containers.</p>



<h2 class="wp-block-heading">Obtaining <em>DockerHub </em>containers</h2>



<p>The previous demonstration with the <em>Anaconda Python</em> container was possible because it was obtained from the <a href="https://hub.docker.com/r/continuumio/anaconda3" target="_blank" rel="noreferrer noopener"><em>DockerHub </em>repository</a>. To obtain/build this container file, proceed as follows:</p>



<pre class="wp-block-code"><code># Load 'singularity' module
module load singularity/3.4.1

# Obtain container using the link seen on DockerHub
# ‘pull’ will download the container within few seconds
singularity pull ~/my_containers/my_anaconda.simg docker://continuumio/anaconda3

# Optionally – you can also use ‘build’ command
# This converts the image to the newest available image format
# In this case, build takes around 3 min
singularity build ~/my_containers/my_anaconda.simg docker://continuumio/anaconda3
</code></pre>



<p>The <em>DockerHub </em>repository contains a number of different containers, which contain sets of software tools suitable for typical tasks in various fields &#8211; physics calculations, data processing, and IT solution tools (e.g., databases). However, there are several repositories besides <em>DockerHub</em>, where software containers are freely available.</p>



<figure class="wp-block-table"><table><tbody><tr><td><strong>Title</strong></td><td><strong>URL</strong></td><td><strong><em>singularity pull</em> prefi</strong>x</td></tr><tr><td>Singularity Library</td><td><a href="https://cloud.sylabs.io/library" target="_blank" rel="noreferrer noopener">https://cloud.sylabs.io/library</a></td><td>singularity pull library://</td></tr><tr><td>Docker Hub</td><td><a href="https://hub.docker.com" target="_blank" rel="noreferrer noopener">https://hub.docker.com</a></td><td>singularity pull docker://</td></tr><tr><td>Singularity Hub</td><td><a href="https://singularity-hub.org" target="_blank" rel="noreferrer noopener">https://singularity-hub.org</a></td><td>singularity pull shub://</td></tr><tr><td>NVIDIA GPU Cloud</td><td><a href="https://ngc.nvidia.com" target="_blank" rel="noreferrer noopener">https://ngc.nvidia.com</a></td><td>singularity pull docker://nvcr.io/</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Installing <em>Singularity </em>and creating containers from scratch</h2>



<p>Despite the extensive repository resources, sometimes it is necessary to create your own, specific container. Because this operation requires administrator privileges, it would typically be performed on your personal computer (or a <em>Linux </em>virtual machine available to you).</p>



<p>The example below considers the creation of a container for using ESPResSo software, a specific tool for soft matter physics simulations. Installing this software requires several different additional tools, which can be time-consuming for the user and HPC cluster administrators. This situation makes the <em>ESPResSo </em>program a great candidate for a container demonstration.</p>



<h3 class="wp-block-heading">Installing <em>Singularity </em>on your personal computer</h3>



<p>To be able to build your own containers, you need to install <em>Singularity </em>on a <em>Linux </em>computer with administrator privileges. For those who do not use <em>Linux </em>on their personal computer, it is worth mentioning that any computer with <em>Windows 10 Enterprise / Pro</em> already has a <a href="https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v" target="_blank" rel="noreferrer noopener">built-in option to run virtual instances of <em>Linux</em></a>. The example below was implemented on an <em>Ubuntu 20.04 LTS</em> virtual machine. Following <a href="https://sylabs.io/guides/3.7/user-guide/quick_start.html#install" target="_blank" rel="noreferrer noopener">this <em>Singularity </em>installation guide</a>, a number of dependencies were first installed:</p>



<pre class="wp-block-code"><code>sudo apt-get update &amp;&amp; sudo apt-get install -y \
    build-essential \
    libssl-dev \
    uuid-dev \
    libgpgme11-dev \
    squashfs-tools \
    libseccomp-dev \
    wget \
    pkg-config \
    git \
    cryptsetup
</code></pre>



<p>Lai būtu iespējas kompilēt un iegūt lietošanā Singularity, nepieciešamas programmēšanas valodas <em>Go</em> rīki, kurus var lejupielādēt <em><a href="https://golang.org/dl/" target="_blank" rel="noreferrer noopener">golang.org</a></em> mājaslapā. Instalācija veicama sekojoši:</p>



<pre class="wp-block-code"><code># Atarhivē lejupielādēto arhīvu
tar -C /usr/local -xzf go1.16.linux-amd64.tar.gz

# Pievieno ‘go’ mapi datora PATH
export PATH=$PATH:/usr/local/go/bin

# Restartē datoru vai arī izpilda komandu:
$HOME/.profile
</code></pre>



<p>To be able to compile and use <em>Singularity</em>, you need <em>Go </em>programming tools, which can be downloaded from <a href="https://golang.org/dl/" target="_blank" rel="noreferrer noopener">golang.org</a>. The installation is performed as follows:</p>



<pre class="wp-block-code"><code># Extracting the downloaded archive
tar -C /usr/local -xzf go1.16.linux-amd64.tar.gz

# Adding the ‘go’ folder to system PATH
export PATH=$PATH:/usr/local/go/bin

# Reboot computer or execute command:
$HOME/.profile
</code></pre>



<p>You can continue with the installation of the <em>Singularity</em> program itself. The code of the latest version of the program can be downloaded from the <a href="https://github.com/hpcng/singularity/releases" target="_blank" rel="noreferrer noopener"><em>GitLab</em> site</a>.</p>



<pre class="wp-block-code"><code># Extracting archive and changing directory
tar -xzf singularity-3.7.1.tar.gz
cd singularity

# Install singularity by specifying location (here /usr/local is chosen)
./mconfig -b ./buildtree -p /usr/local
cd ./singularity/buildtree
make
sudo make install

# Check if installation was successful
singularity version
</code></pre>



<p>After completing the steps above, <em>Singularity </em>has been successfully installed and it is possible to use <em>Singularity</em> on your computer and prepare containers for use elsewhere, e.g., HPC clusters.</p>



<h3 class="wp-block-heading">Create container using a recipe file</h3>



<p>You can create your own containers using the container <strong>recipe file</strong>. Its contents indicate what software, what parameters and other functional aspects should be included within the container file that is about to be built. You can read about the blocks and parameters in the contents of these recipe files in <a href="https://sylabs.io/guides/3.7/user-guide/definition_files.html" target="_blank" rel="noreferrer noopener">this manual</a>. However, it is extremely valuable to get acquainted with and base your work on the various examples of recipe files compiled in <a href="https://github.com/sylabs/examples" target="_blank" rel="noreferrer noopener">this <em>GitHub</em> repository</a>.</p>



<p>Below is an example of a recipe file that creates a container with the aforementioned <em>ESPResSo </em>software. As you can see from the contents of this file, the operation is similar as with a typical computer: for the most part, the file consists of the <em>%post</em> section, with contents identical to the <em>ESPResSo </em>installation guide.</p>



<pre class="wp-block-code"><code>Bootstrap: docker
From: ubuntu:18.04


%help
    Container with ESPResSo
    ESPResSo means: Extensible Simulation Package for Research on Soft Matter
    Website: http://espressomd.org/wordpress/
    Main binary for using ESOResSo via this container is 'pypresso'.

%post
    # Updating repositories and packages
    apt-get update &amp;&amp; apt-get -y upgrade
    
    # Installing all dependencies (as shown on ESPResSo website)
    apt-get -y install wget tar build-essential \
        cmake cython3 python3-numpy libboost-all-dev \
        openmpi-common fftw3-dev libhdf5-dev \
        libhdf5-openmpi-dev python3-opengl libgsl-dev
   
    # Installing ESPResSo (as shown on ESPResSo website)
    cd ~
    wget -c \
    https:&#47;&#47;github.com/espressomd/espresso/releases/download/4.1.4/espresso-4.1.4.tar.gz
    tar zxvf espresso-4.1.4.tar.gz
    mkdir /usr/bin/espresso &amp;&amp; cd /usr/bin/espresso
    cmake ~/espresso
    cmake --build .
    
    # Cleaning up
    apt-get clean
    apt-get autoremove
   
%environment
    # Something about locale... everyone seems to be doing this.
    export LC_ALL=C
    
    # Adding ESPResSo directory to PATH, so that the command 'pypresso' is available
    export PATH=/usr/bin/espresso:$PATH
</code></pre>



<p>Once the recipe file has been created and saved as <em>ESPResSo_container_recipe.def</em>, you can build a container using the command below.</p>



<pre class="wp-block-code"><code>sudo singularity build ESPResSo_container.sif ESPResSo_container_recipe.def</code></pre>



<p>In this case, the process took 5-10 minutes (downloading the basic environment and packages, compiling the specific software). The size of the container file created at the end is about 400 MB. Once a container file has been created, it can be used in the same way as previously shown, with exec and shell commands. The container file can be copied and used elsewhere, including an HPC cluster.</p>



<pre class="wp-block-code"><code>singularity exec ESPResSo_container.sif pypresso &lt;pypresso script file&gt;</code></pre>



<h2 class="wp-block-heading">Using containers with GPU-compute capabilities</h2>



<p>Although containers are encapsulated software environments, their execution can be linked to base operating system resources and hardware: enabling the use of system GPU cards and supplying external software resources (such as CUDA libraries for use inside a container). Below is a brief example of using a <em><a href="https://www.tensorflow.org/" target="_blank" rel="noreferrer noopener">Tensorflow</a> </em>container with GPU acceleration. <em>Tensorflow </em>is a popular tool used to perform machine learning tasks.</p>



<pre class="wp-block-code"><code># Load 'singularity' module
module load singularity/3.4.1

# Load CUDA library
# This module containes information where to look for CUDA commands
# within the system (‘/bin’ folder), and defines the CUDA_HOME variable
module load cuda/cuda-10.2

# Using the container from DockerHub while enabling use of GPU (‘--nv’),
# as well as bind the CUDA library folder with ‘--bind ..’.
singularity shell --nv --bind ${CUDA_HOME} \ 
                     ~/my_containers/tensorflow_2.3.1-gpu.sif
</code></pre>



<p>Similarly, any other external software can be passed to the container by using the bind parameter. Thus, containers can be made smaller: for example, it is not necessary to include <em>Anaconda Python</em> in a container if it is clearly known that it can be passed through with the <em>bind</em> parameter. In this case, only the specific/non-standard software should be included in the container.</p>



<p>Topic discussed in this last section is thoroughly analyzed in the presentation that was shown during the seminar on March 5. It is made available to you as PDF file:</p>



<div class="wp-block-file aligncenter"><a href="https://modinst.lu.lv/wp-content/uploads/2021/03/Singularity_seminars_Aleksandrs_Gutcaits.pdf">Singularity GPU Containers Options (PDF)</a><a href="https://modinst.lu.lv/wp-content/uploads/2021/03/Singularity_seminars_Aleksandrs_Gutcaits.pdf" class="wp-block-file__button" download>Download</a></div>
<p>The post <a href="https://modinst.lu.lv/en/singularity-containers/">Capabilities of Singularity containers</a> appeared first on <a href="https://modinst.lu.lv/en/">Institute of Numerical Modelling</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Basics of Git version control</title>
		<link>https://modinst.lu.lv/en/git-basics/</link>
		
		<dc:creator><![CDATA[Mihaēls Doroņins]]></dc:creator>
		<pubDate>Wed, 03 Feb 2021 08:53:43 +0000</pubDate>
				<category><![CDATA[Computing Centre Tutorials]]></category>
		<category><![CDATA[News]]></category>
		<guid isPermaLink="false">https://modinst.lu.lv/?p=1795</guid>

					<description><![CDATA[<p>About the author Mg. Phys. Kristaps Bergfelds is a researcher at the Institute of Numerical Modelling (University of Latvia), where his daily duties include acquisition, processing, and plotting of scientific data. Additional to his research, Kristaps teaches programming for physics students (programming and data science basics using Python language). This article is based on Kristaps’ [&#8230;]</p>
<p>The post <a href="https://modinst.lu.lv/en/git-basics/">Basics of Git version control</a> appeared first on <a href="https://modinst.lu.lv/en/">Institute of Numerical Modelling</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">About the author</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p>Mg. Phys. Kristaps Bergfelds is a researcher at the Institute of Numerical Modelling (University of Latvia), where his daily duties include acquisition, processing, and plotting of scientific data. Additional to his research, Kristaps teaches programming for physics students (programming and data science basics using Python language). This article is based on Kristaps’ experience and observation on the daily needs of his colleagues and students to collaborate in the development of various programming projects.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru.jpg" alt="" class="wp-image-1534" width="224" height="224" srcset="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru.jpg 781w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru-300x300.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru-80x80.jpg 80w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru-768x768.jpg 768w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru-36x36.jpg 36w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru-180x180.jpg 180w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru-705x705.jpg 705w" sizes="auto, (max-width: 224px) 100vw, 224px" /></figure></div>
</div>
</div>



<p>Almost anyone who has collaborated with colleagues on creating a text report has encountered version control issues. Often you end up browsing and organizing such documents as <em>document.docx</em>, <em>document_final.docx</em>, <em>document_final_edited.docx</em>, <em>document_final_edited_2_really_completed.docx </em>etc. This process can be confusing, error-prone, and cumbersome for all those involved.</p>



<p>To make this process easier, you can place the document in a place accessible to everyone and edit it collaboratively: either in the form of a cloud document (Google Drive, OneDrive, Dropbox) or in a shared local network folder. Versioning is available on these document sharing platforms so that you can restore an earlier version of your documents if necessary. Edit highlighting is also available to inspect exactly what has changed between versions.</p>



<p>Programmers have been facing very similar problems since the beginning of software development itself &#8211; several developers need to interact during program code development, keep track of changes, test various elements of program code, and sometimes obtain earlier code versions. As with text documents, <a href="https://en.wikipedia.org/wiki/Comparison_of_version-control_software" target="_blank" rel="noreferrer noopener">several specialized tools</a> have been developed for controlling code versions, offering a variety of options for specific code development needs, such as the ability to create parallel code development paths and branched version structures.</p>



<p>Currently, the <em>de facto</em> code versioning system standard among programmers is the <em>Git </em>platform. In addition to <a href="https://coderefinery.github.io/git-intro/01-motivation/" target="_blank" rel="noreferrer noopener">various technical advantages</a> and increasing popularity, supporting web-platforms (such as <em><a href="https://github.com/" target="_blank" rel="noreferrer noopener">GitHub</a></em>, <em><a href="https://gitlab.com/" target="_blank" rel="noreferrer noopener">GitLab</a></em>, <em><a href="https://bitbucket.org/" target="_blank" rel="noreferrer noopener">BitBucket</a></em>) should be emphasized. Therefore, this article is devoted to the use of the <em>Git </em>platform specifically. <strong>This article is intended for <em>Windows </em>users who want to take advantage of the versioning system in a graphical interface (rather than through the command line).</strong></p>



<p>The article provides an insight into the basic principles of using <em>Git</em>, shows the required software to be installed in the <em>Windows </em>environment, provides an insight into the sharing of <em>Git </em>repositories with the help of the <em>GitLab </em>portal. For further reading, it is highly recommended to use <a href="https://coderefinery.github.io/git-intro/" target="_blank" rel="noreferrer noopener">this free tutorial</a> provided by the <a href="https://neic.no/" target="_blank" rel="noreferrer noopener">Nordic e-Infrastructure Collaboration (NeIC)</a>.</p>



<h2 class="wp-block-heading">Setting up <em>Git </em>on your computer and basic use of repositories</h2>



<p>To start using the <em>Git </em>versioning system, you need to install <em><a href="https://gitforwindows.org/" target="_blank" rel="noreferrer noopener">Git for Windows</a></em> (keep all default settings during installation). Installing this program makes it possible to use <em>Git </em>only in the command-line interface. Further sections of this article will show you how to do this using a graphical interface, however, a brief demonstration of the command-line interface use is given here to illustrate the basics of <em>Git </em>and introduce some terminology.</p>



<p>When you open the installed <em>Git </em>command line (<em>Git Bash</em>), execute the following commands to create a folder whose contents will be subject to versioning control (i.e., a <strong>repository </strong>will be created). The comments written on each line reveal the essence of the commands.</p>



<pre class="wp-block-code"><code>$ mkdir MyProject    # Create folder
$ cd MyProject       # Change location to the new folder
$ Git init           # Initialize repository
</code></pre>



<p>You can place/create program code files in the folder using your usual tools. In the example below, the folder contains a <em>Python </em>script (<em>my_program.py</em>) that plots some mathematical expressions (<em>myplot.pdf</em>).</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/02/6_project-1030x666.jpg" alt="" class="wp-image-1754" width="689" height="446" srcset="https://modinst.lu.lv/wp-content/uploads/2021/02/6_project-1030x666.jpg 1030w, https://modinst.lu.lv/wp-content/uploads/2021/02/6_project-300x194.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/02/6_project-768x497.jpg 768w, https://modinst.lu.lv/wp-content/uploads/2021/02/6_project-705x456.jpg 705w, https://modinst.lu.lv/wp-content/uploads/2021/02/6_project.jpg 1387w" sizes="auto, (max-width: 689px) 100vw, 689px" /></figure></div>



<p>To preserve the current stage of<em> .py</em> script development in the versioning history, you need to execute commands that (1) add the file to the version control (<em>staging</em>) and (2) mark the changes made in the version history (<em>commit</em>).</p>



<pre class="wp-block-code"><code>git add my_program.py                    # Staging for version control
git commit -m "Initial code development" # Saving changes as a version
</code></pre>



<p>Once this is done, you can run the git status command to see what the current state of the repository is from the versioning system&#8217;s point of view. The command will show if changes have been made since the last version of the content was committed and if there are files that are not being tracked. In this example, the file myplot.pdf is not tracked, because it is the output of the developed script, the exact content of which is not important. It is important, however, to follow the code of the program that created it.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="581" height="300" src="https://modinst.lu.lv/wp-content/uploads/2021/02/1_git_status.jpg" alt="" class="wp-image-1777" srcset="https://modinst.lu.lv/wp-content/uploads/2021/02/1_git_status.jpg 581w, https://modinst.lu.lv/wp-content/uploads/2021/02/1_git_status-300x155.jpg 300w" sizes="auto, (max-width: 581px) 100vw, 581px" /></figure></div>



<p>After changing the repository files (e.g., by continuing to develop the program code), the changes are saved by re-executing the already mentioned commands (<em>git add</em>, <em>git commit</em>). When you run the git log command, the version development history is displayed. This example shows that two submissions have been made (<em>‘Initial code development’</em> and <em>‘Small edits’</em>).</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="581" height="300" src="https://modinst.lu.lv/wp-content/uploads/2021/02/2_git_log.jpg" alt="" class="wp-image-1779" srcset="https://modinst.lu.lv/wp-content/uploads/2021/02/2_git_log.jpg 581w, https://modinst.lu.lv/wp-content/uploads/2021/02/2_git_log-300x155.jpg 300w" sizes="auto, (max-width: 581px) 100vw, 581px" /></figure></div>



<p>If you need to undo changes made to the repository, you can run the git restore command. There are many capabilities of <em>Git</em>: you can return the repository to its previous states, you can create parallel branches of development, you can temporarily examine older versions. However, using <em>Git </em>via the command line interface can be inconvenient, frustrating, and unfamiliar to regular <em>Windows </em>users. Therefore, further in this article we look at ways to use <em>Git </em>repositories through a graphical interface.</p>



<h2 class="wp-block-heading">Using <em>Git Extensions</em> for graphical experience</h2>



<h3 class="wp-block-heading">Installation and configuration</h3>



<p>To use the graphical interface to manage <em>Git </em>repositories in <em>Windows</em>, it is recommended to install <em><a href="http://gitextensions.github.io/" target="_blank" rel="noreferrer noopener">Git Extensions</a></em>. To take full advantage of this program, you need to install two additional applications: (1) <em><a href="https://winmerge.org/?lang=en" target="_blank" rel="noreferrer noopener">WinMerge</a></em>, which will be used to visualize file changes, and (2) <em><a href="https://www.putty.org/" target="_blank" rel="noreferrer noopener">PuTTY</a></em>, which will make it easier to work with remote repositories (e.g., <em>GitLab</em>).</p>



<p>After installing <em>Git Extensions</em>, it is very important to configure all the required program settings &#8211; for this purpose, the program settings window offers a convenient checklist. Make sure all settings are shown as valid (green).</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/02/3_gitext_settings.jpg" alt="" class="wp-image-1781" width="609" height="498" srcset="https://modinst.lu.lv/wp-content/uploads/2021/02/3_gitext_settings.jpg 952w, https://modinst.lu.lv/wp-content/uploads/2021/02/3_gitext_settings-300x245.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/02/3_gitext_settings-768x628.jpg 768w, https://modinst.lu.lv/wp-content/uploads/2021/02/3_gitext_settings-705x576.jpg 705w" sizes="auto, (max-width: 609px) 100vw, 609px" /></figure></div>



<p>In the <em>‘difftools’</em> section select the <em>WinMerge </em>tool mentioned above. Additionally, select <em>‘PuTTY’</em> in the<em> ‘SSH’</em> section of the settings.</p>



<h3 class="wp-block-heading">Basic usage</h3>



<p>After installing the programs and configuring all the settings, use the <em>Git </em>repositories without the help of the command line are now possible. In any <em>Windows </em>folder, a right-click reveals the options provided by <em>Git Extensions</em>: browse existing or create new repositories, copy (<em>clone</em>) the repository from another location (e.g., <em>GitLab</em>).</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="271" height="397" src="https://modinst.lu.lv/wp-content/uploads/2021/02/4_gitext_context.jpg" alt="" class="wp-image-1783" srcset="https://modinst.lu.lv/wp-content/uploads/2021/02/4_gitext_context.jpg 271w, https://modinst.lu.lv/wp-content/uploads/2021/02/4_gitext_context-205x300.jpg 205w" sizes="auto, (max-width: 271px) 100vw, 271px" /></figure></div>



<p>In folders where repositories are already located, <em>&#8216;GitExt open repository&#8217;</em> command is available. This option opens a window where you can review the history of repository changes, see their authors and added comments.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="823" height="541" src="https://modinst.lu.lv/wp-content/uploads/2021/02/5_gitext_browse.jpg" alt="" class="wp-image-1753" srcset="https://modinst.lu.lv/wp-content/uploads/2021/02/5_gitext_browse.jpg 823w, https://modinst.lu.lv/wp-content/uploads/2021/02/5_gitext_browse-300x197.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/02/5_gitext_browse-768x505.jpg 768w, https://modinst.lu.lv/wp-content/uploads/2021/02/5_gitext_browse-705x463.jpg 705w" sizes="auto, (max-width: 823px) 100vw, 823px" /></figure></div>



<p>You can click the <em>‘Commit’ </em>button to create a version of the repository content similarly as shown previously in the command line example. However, in this case, an additional visualization is provided by the <em>Git Extensions</em> environment.</p>



<p>A very valuable and frequently used option is to edit the<em> .gitignore </em>file (<em>Repository / Edit .gitignore</em>), which lists the files and filetypes whose changes to ignore and not subject to version control. In the example provided, PDF file output should be added here.</p>



<h2 class="wp-block-heading">Using <em>GitLab</em> for collaboration</h2>



<p>So far, this article considered only local <em>Git </em>repositories. However, a significant advantage of using a versioning system is the ability to collaborate easily and transparently. That is why several <em>Git</em>-based Internet services have been created with the possibility to deploy and share remote repositories. This section demonstrates the use of one of such services: <em><a href="https://gitlab.com/" target="_blank" rel="noreferrer noopener">GitLab.com</a></em>. It should be noted that the University of Latvia provides a <em>GitLab</em>-based platform <em><a href="https://git.lu.lv/" target="_blank" rel="noreferrer noopener">git.lu.lv</a></em>, which can be accessed with a <a href="https://luis.lu.lv/lu/" target="_blank" rel="noreferrer noopener">LUIS</a> username and password.</p>



<h3 class="wp-block-heading">Registering and creating a repository</h3>



<p>You can <a href="https://gitlab.com/users/sign_up" target="_blank" rel="noreferrer noopener">register</a> on <em>GitLab </em>with an email or a Google account. The platform is free to use, but you need to notice and use the<em> &#8216;Skip Trial&#8217;</em> button during registration.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/02/9_free_trial.jpg" alt="" class="wp-image-1761" width="371" height="178" srcset="https://modinst.lu.lv/wp-content/uploads/2021/02/9_free_trial.jpg 753w, https://modinst.lu.lv/wp-content/uploads/2021/02/9_free_trial-300x144.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/02/9_free_trial-705x338.jpg 705w" sizes="auto, (max-width: 371px) 100vw, 371px" /></figure></div>



<p>After successful account creation, it is possible to create remote repositories – specify the title, description, privacy level (private, shared to group, public) and other parameters.</p>



<h3 class="wp-block-heading">Adding an SSH key</h3>



<p>To upload (<em>git push</em>) the local repositories to the remote <em>GitLab </em>environment, as well as download (<em>git clone</em>) your private repositories, you need a way to authenticate your local computer to work with your <em>GitLab </em>account. SSH keys are used for this purpose.</p>



<p>To enable this type of authentication, you need to create a pair of private and public SSH key. A private SSH key is nothing more than a very long and secure password. The SSH public key, on the other hand, is a publicly visible authentication token that matches this password. In fact, it would be more appropriate to call the public key a &#8216;lock&#8217; which the user can install in a place of his choice &#8211; in this case, his <em>GitLab </em>account.</p>



<p>If you have the aforementioned <em>PuTTY </em>program installed on your computer, the <em>PuTTYgen </em>tool is available for you to easily create SSH key pairs. Following the instructions in the program window, it is possible to obtain both the private key (saved in a <em>.ppk</em> file) and the public key (it must be copy/pasted to the <em>GitLab </em>portal section <em>User Settings / SSH Keys</em>).</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="479" height="471" src="https://modinst.lu.lv/wp-content/uploads/2021/02/10_puttygen.jpg" alt="" class="wp-image-1763" srcset="https://modinst.lu.lv/wp-content/uploads/2021/02/10_puttygen.jpg 479w, https://modinst.lu.lv/wp-content/uploads/2021/02/10_puttygen-300x295.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/02/10_puttygen-80x80.jpg 80w, https://modinst.lu.lv/wp-content/uploads/2021/02/10_puttygen-36x36.jpg 36w" sizes="auto, (max-width: 479px) 100vw, 479px" /></figure></div>



<h3 class="wp-block-heading">Cloning remote repositories</h3>



<p>To obtain a repository located on the <em>GitLab </em>portal (including newly created/empty repositories), you need to copy its SSH address.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="526" height="298" src="https://modinst.lu.lv/wp-content/uploads/2021/02/11_clone_gitlab.jpg" alt="" class="wp-image-1765" srcset="https://modinst.lu.lv/wp-content/uploads/2021/02/11_clone_gitlab.jpg 526w, https://modinst.lu.lv/wp-content/uploads/2021/02/11_clone_gitlab-300x170.jpg 300w" sizes="auto, (max-width: 526px) 100vw, 526px" /></figure></div>



<p>On your computer, right-click within a folder and select the <em>GitExt Clone</em> command. You must specify the address obtained on the <em>GitLab </em>portal and select the appropriate private SSH key for your account. Press the <em>‘Clone’ </em>button to copy the repository.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="618" height="368" src="https://modinst.lu.lv/wp-content/uploads/2021/02/12_gitclone_local.jpg" alt="" class="wp-image-1767" srcset="https://modinst.lu.lv/wp-content/uploads/2021/02/12_gitclone_local.jpg 618w, https://modinst.lu.lv/wp-content/uploads/2021/02/12_gitclone_local-300x179.jpg 300w" sizes="auto, (max-width: 618px) 100vw, 618px" /></figure></div>



<p>After the successful copy (<em>clone</em>) of the repository, you will be able to continue/start working with its content as demonstrated previously. However, now, in addition to the <em>&#8216;Commit&#8217; </em>action discussed earlier, there is a<em> &#8216;Push&#8217;</em> action that uploads versions created in the local repository to the remote location. Similarly, you can perform a <em>&#8216;Pull&#8217; </em>action that will download changes made by others.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="586" height="322" src="https://modinst.lu.lv/wp-content/uploads/2021/02/13_push_pull.jpg" alt="" class="wp-image-1769" srcset="https://modinst.lu.lv/wp-content/uploads/2021/02/13_push_pull.jpg 586w, https://modinst.lu.lv/wp-content/uploads/2021/02/13_push_pull-300x165.jpg 300w" sizes="auto, (max-width: 586px) 100vw, 586px" /></figure></div>



<h3 class="wp-block-heading">Cloning public repositories</h3>



<p>If the repository is set to be public, anyone can download it (<em>git clone</em>) using the repository&#8217;s HTTPS address provided on the <em>GitLab </em>platform. In the example below, the <a href="https://gitlab.com/Bergfelds/myrepoexample" target="_blank" rel="noreferrer noopener">public repository shown in this article</a> is downloaded to the INM High Performance Computing Cluster using the command line.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="791" height="354" src="https://modinst.lu.lv/wp-content/uploads/2021/02/15_git_clone_hpc.jpg" alt="" class="wp-image-1773" srcset="https://modinst.lu.lv/wp-content/uploads/2021/02/15_git_clone_hpc.jpg 791w, https://modinst.lu.lv/wp-content/uploads/2021/02/15_git_clone_hpc-300x134.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/02/15_git_clone_hpc-768x344.jpg 768w, https://modinst.lu.lv/wp-content/uploads/2021/02/15_git_clone_hpc-705x316.jpg 705w" sizes="auto, (max-width: 791px) 100vw, 791px" /></figure></div>



<h2 class="wp-block-heading">Conclusion</h2>



<p>This article provides an insight into working with local <em>Git </em>repositories in the <em>Windows </em>environment by using the<em> Git Extensions</em> GUI. Basics of using <em>GitLab </em>environment, creating remote repositories, performing clone/push/pull operations is also shown. However, the article does not discuss several advantages of the <em>Git </em>system, as well as the <em>GitLab </em>portal. At least one of them should be emphasized before closing this article: project documentation.</p>



<p>In the <em>GitLab </em>repository interface, you can display the repository documentation using the <em>README.md</em> file. I.e., if the repository contains a text file named <em>README.md</em>, it will be previewed on the <em>GitLab </em>site. These documentation files can be formatted with <a href="https://guides.github.com/features/mastering-markdown/" target="_blank" rel="noreferrer noopener">various text markdown commands</a>.</p>



<pre class="wp-block-code"><code>* Nulla vel sem volutpat, volutpat sapien sed, egestas ligula.
* _Vestibulum fermentum lectus et finibus volutpat._
* __Vestibulum tristique turpis quis enim porta vestibulum.__
* `Nam facilisis sapien vitae gravida ultricies.`
* &#91;Nam commodo purus in faucibus fermentum.](https://modinst.lv)
</code></pre>



<p>The text formatting commands shown above, if placed in the <em>README.md</em> file, will be displayed on the <em>GitLab </em>portal as follows:</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="492" height="146" src="https://modinst.lu.lv/wp-content/uploads/2021/02/14_formatted.jpg" alt="" class="wp-image-1771" srcset="https://modinst.lu.lv/wp-content/uploads/2021/02/14_formatted.jpg 492w, https://modinst.lu.lv/wp-content/uploads/2021/02/14_formatted-300x89.jpg 300w" sizes="auto, (max-width: 492px) 100vw, 492px" /></figure></div>



<p>Hopefully, this article will help you to get started with <em>Git </em>and will allow you to collaborate more efficiently and quickly when working on code projects.</p>
<p>The post <a href="https://modinst.lu.lv/en/git-basics/">Basics of Git version control</a> appeared first on <a href="https://modinst.lu.lv/en/">Institute of Numerical Modelling</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>From data to beautiful graphs: The tools of a modern scientist</title>
		<link>https://modinst.lu.lv/en/tools-of-modern-scientist/</link>
		
		<dc:creator><![CDATA[Mihaēls Doroņins]]></dc:creator>
		<pubDate>Sun, 03 Jan 2021 15:51:28 +0000</pubDate>
				<category><![CDATA[Computing Centre Tutorials]]></category>
		<category><![CDATA[News]]></category>
		<guid isPermaLink="false">https://modinst.lu.lv/?p=1540</guid>

					<description><![CDATA[<p>About the author Mg. Phys. Kristaps Bergfelds is a researcher at the Institute of Numerical Modelling (University of Latvia), where his daily duties include acquisition, processing, and plotting of scientific data. Additional to his research, Kristaps teaches programming for physics students (programming and data science basics using Python language). This article is based on Kristaps’ [&#8230;]</p>
<p>The post <a href="https://modinst.lu.lv/en/tools-of-modern-scientist/">From data to beautiful graphs: The tools of a modern scientist</a> appeared first on <a href="https://modinst.lu.lv/en/">Institute of Numerical Modelling</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">About the author</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p>Mg. Phys. Kristaps Bergfelds is a researcher at the Institute of Numerical Modelling (University of Latvia), where his daily duties include acquisition, processing, and plotting of scientific data. Additional to his research, Kristaps teaches programming for physics students (programming and data science basics using <em>Python </em>language). This article is based on Kristaps’ experience and observation on the daily computer tasks of his colleagues and students.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru.jpg" alt="" class="wp-image-1534" width="226" height="226" srcset="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru.jpg 781w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru-300x300.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru-80x80.jpg 80w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru-768x768.jpg 768w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru-36x36.jpg 36w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru-180x180.jpg 180w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_0_par_autoru-705x705.jpg 705w" sizes="auto, (max-width: 226px) 100vw, 226px" /></figure></div>
</div>
</div>



<h2 class="wp-block-heading">Introduction</h2>



<p>Modern science is unimaginable without the use of a computer! However, much more than web-browsing, e-mail, and text editing is meant by this claim. Today&#8217;s IT environment and its rapid development require technology professionals and scientists to be familiar with data processing techniques, data visualization, and many other areas. The computer is the permanent ally of the scientist – the Swiss Army knife, which must always be kept sharp in your pocket!</p>



<p>But unlike a knife, a computer has no tangible blades or tools. Instead, these various functions are performed by applications installed on your computer. Knowing exactly which programs will be useful in a scientist&#8217;s daily life is often a long and painful search process. This article tries to help with this problem.</p>



<p>The article describes a list of free software that will be useful for anyone facing data processing problems and other typical tasks of a scientist. This article is intended for a beginner who uses the Windows operating system. However, it should be noted that some of the software is also available in the Linux environment.</p>



<p>This article is written as supplementary material for the <a href="http://eng.ljza.lv/about-ljza/" target="_blank" rel="noreferrer noopener">Association of Latvian Young Scientists</a> online event <em><a href="https://fb.me/e/NuVhhDsh" target="_blank" rel="noreferrer noopener">&#8220;Scientist&#8217;s Survival Kit: From Data to a Proper Graphic&#8221;</a></em> on January 6, 2021. Event recording <a href="https://youtu.be/h1ERixFJAco" target="_blank" rel="noreferrer noopener">available on <em>YouTube</em></a> (in Latvian).</p>



<h2 class="wp-block-heading">Management of files and raw data</h2>



<p>Before you start the data analysis, you need to do several preparations, as well as answer a series of questions: What is the filetype of the data? What is the structure of these files? How many of these data files are there? How can you arrange and prepare them to proceed with your analysis effectively? Clarifying these issues often takes up most of the workflow and often is a source of many mistakes. The software listed in this section facilitates this stage of work.</p>



<h3 class="wp-block-heading"><em>Notepad++</em></h3>



<p>You can use <em><a href="https://notepad-plus-plus.org/" target="_blank" rel="noreferrer noopener">Notepad++</a></em> to view the contents of text files. This is especially important as it is a typical data storage format (.csv, .dat, etc. – these are all plain text data formats). You can also view these files with <em>Windows </em>tool <em>Notepad</em>, but as the name <em>Notepad++</em> implies, this program offers several benefits.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_1_Notepad.jpg" alt="" class="wp-image-1569" width="606" height="424" srcset="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_1_Notepad.jpg 852w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_1_Notepad-300x210.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_1_Notepad-768x537.jpg 768w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_1_Notepad-705x493.jpg 705w" sizes="auto, (max-width: 606px) 100vw, 606px" /></figure></div>



<p>The program provides tabbed browsing, advanced find/replace operations (see figure), non-standard input methods (e.g., to write in several lines at once), the ability to turn on invisible characters, compare the contents of two files, syntax highlighting for numerous programming languages, etc. The possibilities and use-cases of this lightweight program are extremely wide.</p>



<h3 class="wp-block-heading"><em>Total Commander</em></h3>



<p>When you need to work with many files and various filetypes, <em>Windows </em>built-in file manager <em>Windows Manager</em> may not have enough capabilities, but <em><a href="https://www.ghisler.com/" target="_blank" rel="noreferrer noopener">Total Commander</a></em> certainly does.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_2_TotalCommander.jpg" alt="" class="wp-image-1571" width="594" height="403" srcset="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_2_TotalCommander.jpg 965w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_2_TotalCommander-300x203.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_2_TotalCommander-768x520.jpg 768w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_2_TotalCommander-705x478.jpg 705w" sizes="auto, (max-width: 594px) 100vw, 594px" /></figure></div>



<p>This program offers various specialized operations for file management: Bulk file renaming (with text find/replace and numbering), comparison and synchronization of file folders (see picture), specialized file search options, etc.</p>



<h3 class="wp-block-heading"><em>7-Zip</em></h3>



<p>When finishing work on a project/data processing task, it is recommended to store the whole set of files (data, plotting scripts, generated images) compressed in a single ZIP archive file. This operation is important and relevant even though the capacity of modern data storage devices (flash drives, hard drives) has increased considerably in recent years.</p>



<p>Archive file creation is recommended not because of the storage size reduction, but instead for more convenient file management. Combining many small files into a single ZIP file makes several operations incomparably faster: such as copying files and synchronizing folders (shown above with <em>Total Commander</em>). Additionally, when you use archived data, you avoid the risk of the operating system performing unwanted actions (for example, Windows Photos application interpreting plotted data images like photographs and including them in albums).</p>



<p>The recommended software for working with various data archive formats is <em><a href="https://www.7-zip.org/" target="_blank" rel="noreferrer noopener">7-Zip</a></em>. It can create and open various types of archive files (.zip, .rar, .tar, .7z, etc.). It should be emphasized that, despite the support for various formats, it is recommended to create archives as .zip files, as it is an <a href="https://www.iso.org/standard/60101.html" target="_blank" rel="noreferrer noopener">ISO standardized</a> file format.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_4_7-Zip.jpg" alt="" class="wp-image-1549" width="594" height="407" srcset="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_4_7-Zip.jpg 766w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_4_7-Zip-300x206.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_4_7-Zip-705x483.jpg 705w" sizes="auto, (max-width: 594px) 100vw, 594px" /></figure></div>



<h3 class="wp-block-heading"><em>SpaceSniffer</em></h3>



<p>You can visualize the use of your storage device with <em><a href="http://www.uderzo.it/main_products/space_sniffer/" target="_blank" rel="noreferrer noopener">SpaceSniffer</a></em>. The program displays folders and files in the form of rectangles, the area of which is proportional to the amount of data in it. As you can see in the figure below, the contents of my <em>C:</em> drive are largely used by some very large programs (<em>ANSYS</em>, <em>Wolfram Mathematica</em>, <em>Anaconda Python</em>) rather than <em>Windows </em>files or my personal data.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_5_SpaceSniffer.jpg" alt="" class="wp-image-1551" width="585" height="438" srcset="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_5_SpaceSniffer.jpg 758w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_5_SpaceSniffer-300x225.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_5_SpaceSniffer-705x528.jpg 705w" sizes="auto, (max-width: 585px) 100vw, 585px" /></figure></div>



<h2 class="wp-block-heading">Working with images and video</h2>



<p>A large and important part of scientific work often is the creation and management of images. Very often photographs and other types of images are the data sources for scientific data analysis. Or vice versa – they are the main result of data processing operations. There are several tools recommended for working with this type of data that can facilitate this process.</p>



<h3 class="wp-block-heading"><em>WebPlotDigitizer</em></h3>



<p>Sometimes it is necessary to get numerical data from an image. For example, data from old scientific publication must be used in your calculations or be redrawn. Instead of placing a ruler on the monitor, it is recommended to use <em><a href="https://automeris.io/WebPlotDigitizer/" target="_blank" rel="noreferrer noopener">WebPlotDigitizer</a></em> for this task.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_3_WebPlotDigitizer-1030x533.jpg" alt="" class="wp-image-1573" width="734" height="380" srcset="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_3_WebPlotDigitizer-1030x533.jpg 1030w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_3_WebPlotDigitizer-300x155.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_3_WebPlotDigitizer-768x398.jpg 768w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_3_WebPlotDigitizer-705x365.jpg 705w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_3_WebPlotDigitizer.jpg 1124w" sizes="auto, (max-width: 734px) 100vw, 734px" /></figure></div>



<p>With the help of this program, you can read numerical data from any image – define your own reference system and, using the mouse cursor, read the data and save it in a data file (see the picture above). If the data is displayed with a contrasting colour, the reading can be done automatically without selecting the data points with mouse clicks.</p>



<h3 class="wp-block-heading"><em>GIMP</em></h3>



<p>Image processing program <em><a href="https://www.gimp.org/" target="_blank" rel="noreferrer noopener">GIMP</a> </em>is extremely popular – its capabilities are not that far behind commercial alternatives such as <em>Adobe PhotoShop</em>. It is possible to work with raster (pixel) images in layers, create effect layers and layer masks. Various filters and tools are available. The figure below shows the use of a relatively rare and unique tool: layer perspective correction to show what the logo would look like on a hallway wall as a signboard.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_6_GIMP-1030x595.jpg" alt="" class="wp-image-1553" width="738" height="426" srcset="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_6_GIMP-1030x595.jpg 1030w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_6_GIMP-300x173.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_6_GIMP-768x444.jpg 768w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_6_GIMP-705x407.jpg 705w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_6_GIMP.jpg 1177w" sizes="auto, (max-width: 738px) 100vw, 738px" /></figure></div>



<p>However, it should be noted that learning the program takes time and patience. However, if you do not need all the extensive features of <em>GIMP</em>, other simpler programs exist.</p>



<h3 class="wp-block-heading"><em>Paint.NET</em></h3>



<p>In case you do not need all the features of <em>GIMP</em>, <em><a href="https://www.getpaint.net/" target="_blank" rel="noreferrer noopener">Paint.NET</a></em> is highly recommended. This relatively simple and intuitive program allows you to work with image layers, various effects and tools. For example, the image below shows how to use the <em>Magic Wand </em>tool to selectively highlight a white background for a logotype – for deletion or recolouring.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_7_PaintNET-1030x576.jpg" alt="" class="wp-image-1555" width="733" height="410" srcset="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_7_PaintNET-1030x576.jpg 1030w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_7_PaintNET-300x168.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_7_PaintNET-768x429.jpg 768w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_7_PaintNET-705x394.jpg 705w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_7_PaintNET.jpg 1079w" sizes="auto, (max-width: 733px) 100vw, 733px" /></figure></div>



<h3 class="wp-block-heading"><em>ImageMagick</em></h3>



<p>In the case of many images, even simple operations such as resizing or converting the image filetype are not easy with the programs listed above. In such cases, <em><a href="https://imagemagick.org/index.php" target="_blank" rel="noreferrer noopener">ImageMagick</a> </em>can help. It is a command line program that allows efficient batch image processing. For example, the command below (executed in the <em>Command Prompt</em> console or written in a <em>Windows</em> batch script) will process all the JPG files in the folder – crops the biggest available square part of the image and resizes it to 1000&#215;1000 px.</p>



<pre class="wp-block-code"><code>magick mogrify -gravity center -crop 1:1 +repage -resize 1000x1000 *.jpg</code></pre>



<p>This is a typical operation when preparing images for further use on web pages or data processing programs.</p>



<h3 class="wp-block-heading"><em>Inkscape</em></h3>



<p>Unlike the raster (pixel) image processing programs described above, <em><a href="https://inkscape.org/" target="_blank" rel="noreferrer noopener">Inkscape</a> </em>is designed for creating and processing vector graphics. It can be used to create various diagrams and drawings. <em>Inkscape </em>in many cases allows to avoid use of specialized software (CAD software, <em>Microsoft Visio</em>, etc.). If creation of schematics and other vector graphics are not routine operations for you, <em>Inkscape </em>is a particularly attractive choice.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_8_Inkscape.jpg" alt="" class="wp-image-1557" width="688" height="467" srcset="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_8_Inkscape.jpg 741w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_8_Inkscape-300x204.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_8_Inkscape-705x479.jpg 705w" sizes="auto, (max-width: 688px) 100vw, 688px" /></figure></div>



<p>The image above shows both the capabilities of <em>Inkscape </em>and the benefits of vector graphics in general: A pixelated small image is transformed into a vector graphics object using the appropriate <em>Inkscape </em>tool <em>Bitmap Trace</em>. It can be resized while maintaining image quality. It is possible to change its colours and modify it many other ways.</p>



<h3 class="wp-block-heading"><em>Avidemux </em>and <em>OpenShot</em></h3>



<p>Sometimes you must deal with situations where you need to work with video files – image frames need to be merged into a video (time-lapse), video file formats need to be converted, or a short video scene requires editing. However, buying commercial software (<em>Adobe Premier</em>, <em>Final Cut Pro</em>, etc.) might not be an option. In this case, free tools such as <em><a href="http://avidemux.sourceforge.net/" target="_blank" rel="noreferrer noopener">Avidemux</a></em> and <em><a href="https://www.openshot.org/download/" target="_blank" rel="noreferrer noopener">OpenShot</a></em> will come in handy.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_9_avidemux.jpg" alt="" class="wp-image-1559" width="505" height="482" srcset="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_9_avidemux.jpg 717w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_9_avidemux-300x287.jpg 300w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_9_avidemux-705x674.jpg 705w" sizes="auto, (max-width: 505px) 100vw, 505px" /></figure></div>



<p><em>Avidemux </em>is a very capable program for converting various video formats and changing the technical parameters of video files. It is also possible to combine individual images (.jpg, .png) into a video file (see example in the image above). <em>OpenShot</em>, on the other hand, is a very powerful video editing tool that goes beyond the <em>Video Editor</em> included in <em>Windows 10</em>. At the same time, the program is intuitive and simple enough to learn quickly.</p>



<h2 class="wp-block-heading">Data visualization and creating reports</h2>



<p>Once you have found out the structure of your data files and arranged them for easy processing (for example, they are named with a numbered pattern), you can begin processing and plotting them and summarize the results in a report. This section shows some tools and approaches for this process.</p>



<h3 class="wp-block-heading"><em>Gnuplot</em></h3>



<p>If you only need to display (not process) data files, <em><a href="http://www.gnuplot.info/" target="_blank" rel="noreferrer noopener">Gnuplot</a></em> is very useful. This program can be used as a command-line application or used via plotting scripts. Because the program is intended for data plotting – not processing – the commands used are very concise and minimalistic. It is relatively easy to learn this program, while still allowing you to process very large data sets and obtain various types of output (line plots, bar plots, histograms, 2D heatmaps, etc.). You can output graphics in both vector (PDF) and raster (PNG) image formats.</p>



<p>Below is a small script that plots the contents of three data files in a single image: speed versus time during car breaking and stopping. The comments within the script describe the meaning of each section of the code. <a href="https://modinst.lu.lv/example_gnuplot/" target="_blank" rel="noreferrer noopener">Here you can download</a> the whole example (input data, plotting script, output image).</p>



<pre class="wp-block-code"><code># Defining canvas size, line thickness, and font size
set terminal pngcairo size 900,700 enhanced lw 3 fontscale 2.0

# Setting filename of the output
set output "example_gnuplot_output.png"

# Formatting plot (axis titles, range, tickmarks)
set yrange &#91;-5:105]
set xlabel "t, s"
set ylabel "v, km/h" # Data in m/s! Need to scale by 3.6!
set xtics 1
set ytics 20
set grid

# Cycle for plotting all three datafiles on single canvas
plot for &#91;i=1:3] \
	'breaking_speed_data_'.i.'.dat' using ($1):($2*3.6) with line title 'File '.i</code></pre>



<p>The plot (see below) shows that the car has stopped from 100, 70 and 50 km/h within 4.0, 2.7 and 2.0 seconds respectively.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/01/example_gnuplot_output.png" alt="" class="wp-image-1583" width="568" height="442" srcset="https://modinst.lu.lv/wp-content/uploads/2021/01/example_gnuplot_output.png 900w, https://modinst.lu.lv/wp-content/uploads/2021/01/example_gnuplot_output-300x233.png 300w, https://modinst.lu.lv/wp-content/uploads/2021/01/example_gnuplot_output-768x597.png 768w, https://modinst.lu.lv/wp-content/uploads/2021/01/example_gnuplot_output-705x548.png 705w" sizes="auto, (max-width: 568px) 100vw, 568px" /></figure></div>



<h3 class="wp-block-heading"><em>Python</em></h3>



<p>If it is necessary not only to display the data, but also to process it at the same time, then the <em>Python </em>programming language and various additional components (packages) are very suitable for this purpose. A convenient way to get the full set of tools (<em>Python</em>, frequently used packages, graphical code editor) is to install the <em><a href="https://www.anaconda.com/products/individual" target="_blank" rel="noreferrer noopener">Anaconda</a></em> software package.</p>



<p>The capabilities of the <em>Python </em>programming language and related tools certainly go beyond the scope of this article, but below is an example of what a data processing and plotting script looks like. It uses <em>Numpy/Scipy</em> numerical data processing capabilities as well as <em>Matplotlib </em>plotting library. The comments within the script describe the meaning of each section of the code. <a href="https://modinst.lu.lv/example_python/" target="_blank" rel="noreferrer noopener">Here you can download</a> the whole example (input data, plotting script, output image).</p>



<pre class="wp-block-code"><code># Importing necesarry packages
import numpy as np
import matplotlib.pyplot as plt
import glob
from scipy.integrate import cumtrapz

# Reading all filenames ending with '.dat' from the current folder
text_filenames = glob.glob("*.dat")

# Defining canvas size for plotting
plt.figure(figsize = (4.5,3.5), dpi = 200)

# Cycle through all filenames for data processing and plotting
for filename in text_filenames:

    # Reading each file (tab-delimited data)
    time, velocity = np.loadtxt(
        filename,
        delimiter = "\t",
        skiprows = 1,
        unpack = True
        )
    
    # Using numerical integration to get distance from velocity data
    distance = cumtrapz(velocity, time, initial=0.0)
    
    # Determining maximum velocity and distance (for later use in legend)
    velocity_max = velocity.max()
    distance_max = distance.max()
    
    # Plotting distance vs. time and putting the max distance in the legend
    plt.plot(
        time,
        distance,
        label = "{:.0f} km/h - breaking dist. is {:.1f} m".format(
            velocity_max*3.6,
            distance_max
            )
        )

# Formatting of the plot (added grid, axis titles, legend)
plt.grid()
plt.legend(loc="upper left")
plt.xlabel("t, s")
plt.ylabel("d, m")
plt.xlim(0,5)

# Saving the plot as PNG image
plt.savefig("example_python_output.png")</code></pre>



<p>The script sums up (integrates) the previously displayed car velocity data to show the braking distance of the car. It can be seen that the car&#8217;s braking distance from 100 km/h is 55 m, but from 50 km/h only 14 m. This result is quite un-intuitive, as twice the speed does not mean twice the braking distance. In fact, it is four times greater!</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/01/example_python_output.png" alt="" class="wp-image-1585" width="505" height="393" srcset="https://modinst.lu.lv/wp-content/uploads/2021/01/example_python_output.png 900w, https://modinst.lu.lv/wp-content/uploads/2021/01/example_python_output-300x233.png 300w, https://modinst.lu.lv/wp-content/uploads/2021/01/example_python_output-768x597.png 768w, https://modinst.lu.lv/wp-content/uploads/2021/01/example_python_output-705x548.png 705w" sizes="auto, (max-width: 505px) 100vw, 505px" /></figure></div>



<h3 class="wp-block-heading"><em>LaTeX </em>typesetting</h3>



<p>Usually, the main result of a scientist&#8217;s work is not constructed equipment, programmed software or other production-grade product. Instead, it is new information and conclusions. The way you present the results of your research – this new information – is extremely important. It must thorough, technically sound, and easy to comprehend. Most of these informative materials (reports, publications, scientific articles) rely heavily on the use of figures, tables, mathematical expressions, bibliographic citations.</p>



<p>It is possible to create this type of material in <em>Microsft Word</em>, but it is certainly cumbersome. <em>LaTeX </em>typesetting solutions are much more suitable for this purpose. When using <em>LaTeX</em>, documents are created in the form of a code, specifying only the content – where the sections start and end, where to insert references, where to place images. The formatting is left to the <em>LaTeX </em>engine, which arranges text and images optimally, performs automatic reference numbering and so on. This approach is so suitable for creating scientific literature that scientific journals often accept articles only in <em>LaTeX </em>code. Below is a visual example of a <em>LaTeX </em>typesetting result that would be extremely difficult to create with <em>Word </em>(example from <a href="https://tex.stackexchange.com/questions/1319/showcase-of-beautiful-typography-done-in-tex-friends" target="_blank" rel="noreferrer noopener">this <em>StackExchange </em>thread</a>).</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_10_LaTeX-1030x723.png" alt="" class="wp-image-1561" width="667" height="468" srcset="https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_10_LaTeX-1030x723.png 1030w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_10_LaTeX-300x211.png 300w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_10_LaTeX-768x539.png 768w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_10_LaTeX-705x495.png 705w, https://modinst.lu.lv/wp-content/uploads/2021/01/no_datiem_lidz_grafikam_10_LaTeX.png 1271w" sizes="auto, (max-width: 667px) 100vw, 667px" /></figure></div>



<p>To start creating documents with <em>LaTeX</em>, you can install the necessary software on your computer: <em><a href="https://miktex.org/" target="_blank" rel="noreferrer noopener">MiKTeX</a> </em>package (allows you to convert <em>LaTeX </em>code into a PDF document), as well as <em><a href="https://www.texstudio.org/" target="_blank" rel="noreferrer noopener">TeXstudio</a></em> or <em><a href="https://www.xm1math.net/texmaker/" target="_blank" rel="noreferrer noopener">Texmaker</a></em> editor (GUI for easy code creation, file management). But lately, creating <em>LaTeX </em>documents on the <em><a href="https://www.overleaf.com/" target="_blank" rel="noreferrer noopener">Overleaf</a> </em>cloud platform has become extremely popular. There is no need to install anything on your computer – documents can be created directly in a web browser.</p>



<p><em>LaTeX </em>document creation and language syntax are also too broad a topic for the scope of this article, but for an impression of how document creation with <em>LaTeX/Overleaf </em>works, <a href="https://www.overleaf.com/read/smswzjmsckvs" target="_blank" rel="noreferrer noopener">see this example</a> where comments show the meaning of each code section.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>The list of recommended software as well as their capabilities is by no means fully described in this article. There are other open-source programs that perform the described functions. Additionally, the software shown here can be used for much more that is shown. Nevertheless, I hope that this article will serve as the first step for those looking for ways to expand their capabilities.</p>



<h2 class="wp-block-heading">Appendix</h2>



<p>Following the publication of this article, several readers have identified other valuable open access programs that are relevant to the topic of this article.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p><em><a href="https://www.voidtools.com/" target="_blank" rel="noreferrer noopener">Voidtools</a></em> – Fast file search;</p>



<p><em><a href="https://freefilesync.org/" target="_blank" rel="noreferrer noopener">FreeFileSync</a></em> – file synchronization;</p>



<p><em><a href="https://markummitchell.github.io/engauge-digitizer/" target="_blank" rel="noreferrer noopener">Engauge Digitizer</a></em> – acquiring numerical data from images;</p>



<p><a href="https://shotcut.org/" target="_blank" rel="noreferrer noopener"><em>Shotcut</em></a> – video editing;</p>



<p><em><a href="https://www.photopea.com/" target="_blank" rel="noreferrer noopener">Photopea</a></em> – photo editing in web-browser;</p>



<p><em><a href="https://www.audacityteam.org/" target="_blank" rel="noreferrer noopener">Audacity</a></em> – audio editing;</p>



<p><em><a href="https://www.irfanview.net/" target="_blank" rel="noreferrer noopener">IrfanView</a></em> and <em><a href="https://imageglass.org/" target="_blank" rel="noreferrer noopener">ImageGlass</a></em> – fast image opening and browsing;</p>



<p><em><a href="https://www.darktable.org/" target="_blank" rel="noreferrer noopener">darktable</a></em> – editing RAW photo files (alternative to <em>Adobe Lightroom</em>).</p>
</div></div>
<p>The post <a href="https://modinst.lu.lv/en/tools-of-modern-scientist/">From data to beautiful graphs: The tools of a modern scientist</a> appeared first on <a href="https://modinst.lu.lv/en/">Institute of Numerical Modelling</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
