1 00:00:00,640 --> 00:00:05,040 Hello everyone and welcome to this  short video series about GROOPS.   2 00:00:05,040 --> 00:00:09,120 My name is Sebastian Strasser and I'm going  to show you the basic features of GROOPS.   3 00:00:10,080 --> 00:00:16,720 So this first video will be a short overview about  GROOPS, what it is, how to use it, how to use the   4 00:00:16,720 --> 00:00:23,280 graphical user interface and so on. So let's  start here on GitHub. This is our repository,   5 00:00:23,280 --> 00:00:28,640 where you can download GROOPS and this is also the  right place to ask any questions or submit any bug   6 00:00:28,640 --> 00:00:34,320 reports and so on. So, first of all, you have  to install GROOPS. We have an installation page   7 00:00:34,880 --> 00:00:40,800 with instructions for Microsoft Windows and  also several Linux distributions. So here   8 00:00:40,800 --> 00:00:46,800 you can just follow these steps to install  GROOPS on your operating system of choice.   9 00:00:50,240 --> 00:00:56,880 There's also a link to our documentation,  which we will use later in this series,   10 00:00:57,760 --> 00:01:06,000 where you can find information on basic  features but also cookbooks to perform   11 00:01:06,000 --> 00:01:10,480 specific tasks and also a description of all  the classes and programs you find in GROOPS.   12 00:01:11,520 --> 00:01:18,320 So after you have installed GROOPS, I'll show  you a quick overview of what is GROOPS. So GROOPS   13 00:01:18,320 --> 00:01:22,640 has both a command line application,  which is GROOPS itself, let's call it,   14 00:01:22,640 --> 00:01:30,560 and we have a graphical user interface. So all  the logic is part of the command line application   15 00:01:30,560 --> 00:01:38,080 and with the graphical user interface you just  create so-called config files, which tell GROOPS,   16 00:01:38,080 --> 00:01:41,920 which tell the command line application what you  do. So from the graphical user interface you can   17 00:01:41,920 --> 00:01:47,840 also directly call the command line application  and run a GROOPS script. And how does the user   18 00:01:47,840 --> 00:01:54,880 interface know which programs exist, what settings  exist and so on. This is done by an XML schema   19 00:01:54,880 --> 00:01:59,760 file. So the GROOPS command line application  can create a schema file – if you've downloaded   20 00:02:00,400 --> 00:02:04,800 GROOPS from GitHub you already have this  file – and the GUI then parses this file   21 00:02:05,840 --> 00:02:09,840 to know which programs there are  and which settings there exist.   22 00:02:10,960 --> 00:02:16,080 Okay, so let's start with the command line  part. So if you have installed GROOPS correctly   23 00:02:16,080 --> 00:02:20,880 you can just call GROOPS in the command  line by entering "groops" or "groops.exe"   24 00:02:21,760 --> 00:02:28,240 if you're on Windows. And this is just a help  text from GROOPS, you can see there are several   25 00:02:28,240 --> 00:02:35,120 optional arguments and the last argument is a  config file. You can pass one or more config files   26 00:02:35,120 --> 00:02:41,760 to run a GROOPS program. For example, I can type  "groops ..." – I have an example script prepared   27 00:02:41,760 --> 00:02:50,080 which is "01groopsExample.xml" – and if I run  this you can see this script just simulates a   28 00:02:50,080 --> 00:02:55,840 basic orbit and that's it. So it goes by  super quickly. So, yeah that's the basic   29 00:02:55,840 --> 00:03:01,040 principle of GROOPS. It's just a command line  application. However, as I mentioned earlier,   30 00:03:01,040 --> 00:03:09,600 there's also the graphical user interface, which  looks like this. This will be your main interface   31 00:03:09,600 --> 00:03:14,320 for GROOPS because this will be the place  where you usually create scripts, so you   32 00:03:14,320 --> 00:03:21,040 create the scripts which tell GROOPS what to do.  I have here open my example script I just ran.   33 00:03:22,400 --> 00:03:28,080 On the left we have a sidebar, which shows all  the open files. There's also a list of programs,   34 00:03:28,720 --> 00:03:36,560 an undo stack, which I will mention later, and  you have a menu, of course. There are several   35 00:03:38,080 --> 00:03:43,440 features. When you first start the graphically  user interface you will probably be prompted to   36 00:03:43,440 --> 00:03:49,680 set up some default paths and files. So this menu  will show up. Here you have to set the path to the   37 00:03:49,680 --> 00:03:57,680 schema file, which i mentioned earlier, and which  is usually located in your GROOPS directory. You   38 00:03:57,680 --> 00:04:02,320 can set a working directory, which is just the  base directory where all your scripts start,   39 00:04:02,320 --> 00:04:08,960 but of course you can use different directories  when you save a script. And also you have to set   40 00:04:08,960 --> 00:04:16,640 the documentation directory. This is like this  part, so it's a subfolder "docs/html". Another   41 00:04:16,640 --> 00:04:21,600 feature you can use is a template file. You can  just use any GROOPS script as a template file.   42 00:04:21,600 --> 00:04:28,560 For example, here I have my "groopsTemplate.xml"  which is this file here. And this template file,   43 00:04:28,560 --> 00:04:34,560 in this case, only contains global variables.  You can imagine global variables just as global   44 00:04:34,560 --> 00:04:43,360 variables in any programming language. And here  you could also add some programs. The nice thing   45 00:04:43,360 --> 00:04:48,720 about the GROOPS template is I can set up any  variables, for example, a very important variable   46 00:04:48,720 --> 00:04:55,360 is "groopsDataDir", which is used as a default  variable in several paths of our programs. Here   47 00:04:55,360 --> 00:05:01,920 you can set the path to the GROOPS data directory  you have hopefully downloaded from the FTP server.   48 00:05:02,560 --> 00:05:08,960 And you can also create any other variables. If  you have set this template file in "Settings",   49 00:05:09,680 --> 00:05:14,320 whenever you create a new script file these  variables will be auto-generated, so everything   50 00:05:14,320 --> 00:05:20,400 which is part of the template file will exist also  in this file. So this is very convenient to set   51 00:05:20,400 --> 00:05:28,320 up some basic global variables you always need.  But let's go back to the script we just ran. It   52 00:05:28,880 --> 00:05:33,440 is a very basic script, there is only one  program, which is called "SimulateOrbit".   53 00:05:34,240 --> 00:05:38,640 It has an output file. It has several  input files. You define a time series,   54 00:05:38,640 --> 00:05:47,040 sampling and so on. You can set up several forces.  So here you basically just tell the program   55 00:05:47,040 --> 00:05:52,160 what to do and which settings you want to use.  I will go into these settings later in the next   56 00:05:52,160 --> 00:05:58,240 video, this is just an overview of how to use it.  For example, you could also add another program,   57 00:05:59,280 --> 00:06:07,120 select any program you want; or you can change  settings; you can add forces and so on. So this is   58 00:06:08,960 --> 00:06:15,840 pretty straightforward and easy to use.  This file, as you can see, is an XML file,   59 00:06:15,840 --> 00:06:22,480 so if I look at this file you can see it's just  the program we just saw – "SimulateOrbit" –   60 00:06:22,480 --> 00:06:27,120 it has the output file, it has the time series  and so on. It's just encoded as an XML file. 61 00:06:30,320 --> 00:06:37,200 Okay, and if you want to run this program –  let's head to the "Undo Stack", where we can just   62 00:06:37,200 --> 00:06:42,160 undo or redo all our changes. Let's go back to the  initial state of the file. And if I now want to   63 00:06:42,160 --> 00:06:46,400 run this file – earlier I showed you you can do  it over the command line – but you can also hit   64 00:06:46,400 --> 00:06:54,480 the green triangle button and hit run and also a  command line window will open and run the script.   65 00:06:56,480 --> 00:07:02,080 Okay, and another important feature of GROOPS  is a Help feature. So you can select any program   66 00:07:02,080 --> 00:07:07,280 and hit F1 and it will open the documentation  in the browser, if you set the path   67 00:07:07,280 --> 00:07:11,280 correctly. And here you have the documentation  of the program "SimulateOrbit". You can see   68 00:07:12,240 --> 00:07:17,840 basic text, what it does, and also a  description of all the settings you can use.   69 00:07:19,360 --> 00:07:23,760 Okay, that's everything I wanted to show  you in this first video. In our next video,   70 00:07:23,760 --> 00:07:28,320 we will create a basic, easy script, so you  can see the process of creating a script.   71 00:07:29,040 --> 00:07:31,360 Thanks for watching and see you in the next video!