<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homer.zpr.fer.hr/gisaxstudio/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Igor</id>
	<title>GisaxStudio - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://homer.zpr.fer.hr/gisaxstudio/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Igor"/>
	<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Special:Contributions/Igor"/>
	<updated>2026-04-04T16:40:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Developer_manual&amp;diff=37</id>
		<title>Developer manual</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Developer_manual&amp;diff=37"/>
		<updated>2023-07-18T10:14:21Z</updated>

		<summary type="html">&lt;p&gt;Igor: Created page with &amp;quot;File:program_flow.PNG&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:program_flow.PNG]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=User_manual&amp;diff=36</id>
		<title>User manual</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=User_manual&amp;diff=36"/>
		<updated>2023-07-18T10:13:05Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* 4.1. Sampling areas (ROIs) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== User Manual ======&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 1. Running the program =====&lt;br /&gt;
&lt;br /&gt;
To run the program, you have to have Java 1.8+ installed on your computer (chances are you already have it).&lt;br /&gt;
If not, see here: http://www.java.com/en/download/help/index_installing.xml&lt;br /&gt;
&lt;br /&gt;
The program can be started either (depending on the OS) by:&lt;br /&gt;
&lt;br /&gt;
  * from the GUI: double-clicking the g.jar &lt;br /&gt;
  * from the console: when positioned in the program folder, type: &amp;quot;java -jar GisaxStudio.jar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The latter will print the potential errors into the console, which helps in error reporting/debugging&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 1. Setup new experiment =====&lt;br /&gt;
&lt;br /&gt;
Upon start, the program will report that there are no &amp;quot;experiments&amp;quot; in the database. &lt;br /&gt;
**Note: the program relies on the database to store/retrieve all data related to the experiments EXCEPT IMAGES which are kept in the file system.**&lt;br /&gt;
Data processing is logically organized into &amp;quot;experiments&amp;quot; - experiment being a way of grouping a number of images (N&amp;gt;=1) to be fitted.  &lt;br /&gt;
An experiment can consist of 1+ frames (images) and there can be any number of experiments in the database.&lt;br /&gt;
It is up to the user to structure (group) his/hers data into experiments.&lt;br /&gt;
Initial screen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Newexp01.PNG|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choose: Experiment-&amp;gt;New experiment&lt;br /&gt;
&lt;br /&gt;
Select the folder where you experiment&#039;s images (to fit) reside.&lt;br /&gt;
There are already two test images provided with the download in the /images/exp1 folder.&lt;br /&gt;
It is recommended to user relative paths, that is - to store images in the provided &amp;quot;images&amp;quot; folder, using subfolder named after the experiment. &lt;br /&gt;
This way the program (and images) can be easily copies from one computer to another without additional configuration. &lt;br /&gt;
Contrary, if you use absolute paths and point to e.g. c:\temp\images, that folder might not exist on another computer.&lt;br /&gt;
&lt;br /&gt;
Here, images/exp1 is chosen:&lt;br /&gt;
&lt;br /&gt;
[[File:Newexp02.PNG|400px]]&lt;br /&gt;
&lt;br /&gt;
Name the experiment:&lt;br /&gt;
&lt;br /&gt;
[[File:Newexp03.PNG|400px]]&lt;br /&gt;
&lt;br /&gt;
Depending on the number of tif images found there, the program will setup &amp;quot;frames&amp;quot;. &lt;br /&gt;
&#039;&#039;&#039;There has to be at least one tif image in the assigned folder.&#039;&#039;&#039; &lt;br /&gt;
In this example, there are two images in the /images/exp1 folder and so we have:&lt;br /&gt;
[[File:Newexp04.PNG|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 2. Layout ====&lt;br /&gt;
&lt;br /&gt;
Program layout is organized as shown here:&lt;br /&gt;
&lt;br /&gt;
[[File:Structure.PNG|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 3. Preprocess the image ====&lt;br /&gt;
&lt;br /&gt;
It is intended for image processing tasks (e.g. image resize) to take place outside of the program, using one of many image processing tools (e.g. ImageJ). &lt;br /&gt;
However, some rudimentary image processing operations are built into the program, namely &amp;quot;Preprocess&amp;quot; which consists of:&lt;br /&gt;
  1. Fixing negative values ( by setting them to zero)&lt;br /&gt;
  2. Auto brightness &amp;amp; contrast&lt;br /&gt;
  3. Fixing &amp;quot;dark stripes sometimes produced by detector&amp;quot; by interpolation&lt;br /&gt;
&lt;br /&gt;
So, in our test experiment, **click &amp;quot;Smooth&amp;quot;** until you&#039;re satisfied with the image. &lt;br /&gt;
Then, assign the leftmost image to be the &amp;quot;fit image&amp;quot; by clicking on &amp;quot;-&amp;gt; to fit&amp;quot; button:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Newexp05.PNG|800px]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== 4. Adjust sampling params ====&lt;br /&gt;
&lt;br /&gt;
=== 4.1. Sampling areas (ROIs) ===&lt;br /&gt;
&lt;br /&gt;
Now that we have prepared the image, we need to define the sampling areas. If not, the whole image will be sampled.&lt;br /&gt;
**Click on the &amp;quot;Set ROIs&amp;quot;** button. A new image will pop-up, along with the ImageJ application.&lt;br /&gt;
Use ImageJ&#039;s selection tools to assign the sampling areas by:&lt;br /&gt;
(a) selecting the area &lt;br /&gt;
(b) clicking the Save ROI button&lt;br /&gt;
[[File:Setroi.PNG|600px]]&lt;br /&gt;
&lt;br /&gt;
==&amp;gt;&lt;br /&gt;
[[File:Setroi2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you assign multiple ROIs (selections) a UNION of those areas will be used.&#039;&#039;&#039;&lt;br /&gt;
Each ROI is given a generated name, and you can delete it afterwards (it is visible in the Frame tree).&lt;br /&gt;
You can also add more ROIs later.&lt;br /&gt;
Close manually ImageJ and SetRoi window once you&#039;re done.&lt;br /&gt;
&lt;br /&gt;
=== 4.2. Raster size/specular/y0 ===&lt;br /&gt;
&lt;br /&gt;
Adjust the raster size, specular and y0 using provided sliders.&lt;br /&gt;
Fit image reflects the assigned values.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 5. Running single fit ====&lt;br /&gt;
&lt;br /&gt;
Select the frame you want to fit in the frame tree and click &amp;quot;Fit&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
A dialog with additional model parameters is presented.&lt;br /&gt;
Adjust the values if needed and click &amp;quot;Run&amp;quot;.&lt;br /&gt;
Parameter values are automatically stored in the database (if such combination doesn&#039;t already exist).&lt;br /&gt;
&lt;br /&gt;
After a 10-20 seconds, a new tab will appear in which all available fitting/optimizing algorithms will be started (in separate threads): &lt;br /&gt;
[[File:Running.PNG|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When they are done, the results will be stored in the database (and visible in the Frame tree, under the corresponding parameter node).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that you can stop/kill some algorithms if you wish, the difference being:&lt;br /&gt;
  * stop - gracefully stops the algorithm, and the results obtained so far are stored in the DB&lt;br /&gt;
  * kill - ungracefully stops the algorithm, no results from that algorithm are stored&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 6. Running batch fit ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run a batch fit, one must first define a number of parameters that will be used.&lt;br /&gt;
So (a) the parameters have to be defined, stored in the DB, and then (b) one can run a batch on those params.&lt;br /&gt;
&lt;br /&gt;
=== 6.1. Batch parameters definition ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the frame you want to fit in the frame tree **and click &amp;quot;Batch Fit&amp;quot; button.**&lt;br /&gt;
The same dialog as in single fit appears, but with additional tab that allows for programmatic parameter variations to be defined.&lt;br /&gt;
&lt;br /&gt;
There are two approaches to parameters definition:&lt;br /&gt;
&lt;br /&gt;
  * manual: vary parameters by hand and add them to the batch items set.&lt;br /&gt;
  * using script params tab: assign expressions for each parameter you want to vary&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:batchfitdialog.PNG|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 6.1.1. Manual definition ==&lt;br /&gt;
&lt;br /&gt;
Set model parameters using model dependent tabs and click &amp;quot;add to batch&amp;quot;.&lt;br /&gt;
Repeat as many times as needed.&lt;br /&gt;
Note that manual definition can be combined with the &amp;quot;script approach&amp;quot;, for instance you can define e.g. 3 batch items manually and then continue to add another N items using the script tab:&lt;br /&gt;
&lt;br /&gt;
== 6.1.2. Using script tab ==&lt;br /&gt;
&lt;br /&gt;
The upper part of the script tab (model &amp;amp; algorithms) actually pertains to both approaches - it is used to:&lt;br /&gt;
  * select the model (only one for the time being). Changing model causes the model dependent tabs to reload (TODO).&lt;br /&gt;
  * select the algorithms that will be used (regardless of what approach was used).&lt;br /&gt;
&lt;br /&gt;
The lower part allows to select any of the current model parameters and to set **the list of values** that will be used/varied (iterated).&lt;br /&gt;
Upper and lower bounds can also be assigned, but in that case the bounds list cardinality must be equal to the values list cardinality.&lt;br /&gt;
  E.g. &lt;br /&gt;
  if we want to vary param A using values: 1, 2 and 3&lt;br /&gt;
  we can also assign upper and lower bounds, but there has to be three of each.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
**The list of values** (expressions) can be assigned in two ways:&lt;br /&gt;
  * manual lists, examples: &lt;br /&gt;
    * &amp;quot;1, 5,   7&amp;quot;&lt;br /&gt;
    * &amp;quot;(1, 2),  (3, 4)&amp;quot;    -&amp;gt; those are complex numbers 1+2i, 3+4j&lt;br /&gt;
&lt;br /&gt;
  * for expression (that evaluates to a list):&lt;br /&gt;
    * &amp;quot;for(1; 10; 3)&amp;quot;   -&amp;gt; evaluates to &amp;quot;1, 4, 7, 10&amp;quot;&lt;br /&gt;
    * &amp;quot;for( (1, 1); (3, 3); (1, 1) )&amp;quot;   -&amp;gt; evaluates to &amp;quot;(1, 1), (2, 2), (3, 3)&amp;quot;, when using complex numbers abs is used to evaluate the middle &amp;lt;= expression &lt;br /&gt;
&lt;br /&gt;
When you define the values (and potentially the corresponding bound expressions), click the &amp;quot;Parse/Add&amp;quot; button to see whether the program accepts the syntax and successfully parses the expression into list.&lt;br /&gt;
You can define a number of such lists using different model parameters, and finally, when you&#039;re satisfied click &amp;quot;Add to batch&amp;quot; so that the batch items are generated and added to the list.&lt;br /&gt;
If there are more than one lists, the program will generate a Cartesian product of those lists, while preserving the order.&lt;br /&gt;
  For instance, let say you&#039;ve defined four lists (for params A, B, C and D):&lt;br /&gt;
  [1, 2, 3]&lt;br /&gt;
  [&amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;]&lt;br /&gt;
  [&amp;quot;x&amp;quot;, &amp;quot;y&amp;quot;]&lt;br /&gt;
  [0., 3.14, 2.71]&lt;br /&gt;
  the program will generate 36 = 3 * 2 * 2 * 3 items:&lt;br /&gt;
  0. --&amp;gt;  1 A x 0.0&lt;br /&gt;
  1. --&amp;gt;  1 A x 3.14&lt;br /&gt;
  2. --&amp;gt;  1 A x 2.71&lt;br /&gt;
  3. --&amp;gt;  1 A y 0.0&lt;br /&gt;
  4. --&amp;gt;  1 A y 3.14&lt;br /&gt;
  5. --&amp;gt;  1 A y 2.71&lt;br /&gt;
  6. --&amp;gt;  1 B x 0.0&lt;br /&gt;
  7. --&amp;gt;  1 B x 3.14&lt;br /&gt;
  8. --&amp;gt;  1 B x 2.71&lt;br /&gt;
  9. --&amp;gt;  1 B y 0.0&lt;br /&gt;
  10. --&amp;gt;  1 B y 3.14&lt;br /&gt;
  11. --&amp;gt;  1 B y 2.71&lt;br /&gt;
  12. --&amp;gt;  2 A x 0.0&lt;br /&gt;
  13. --&amp;gt;  2 A x 3.14&lt;br /&gt;
  14. --&amp;gt;  2 A x 2.71&lt;br /&gt;
  15. --&amp;gt;  2 A y 0.0&lt;br /&gt;
  16. --&amp;gt;  2 A y 3.14&lt;br /&gt;
  17. --&amp;gt;  2 A y 2.71&lt;br /&gt;
  18. --&amp;gt;  2 B x 0.0&lt;br /&gt;
  19. --&amp;gt;  2 B x 3.14&lt;br /&gt;
  20. --&amp;gt;  2 B x 2.71&lt;br /&gt;
  21. --&amp;gt;  2 B y 0.0&lt;br /&gt;
  22. --&amp;gt;  2 B y 3.14&lt;br /&gt;
  23. --&amp;gt;  2 B y 2.71&lt;br /&gt;
  24. --&amp;gt;  3 A x 0.0&lt;br /&gt;
  25. --&amp;gt;  3 A x 3.14&lt;br /&gt;
  26. --&amp;gt;  3 A x 2.71&lt;br /&gt;
  27. --&amp;gt;  3 A y 0.0&lt;br /&gt;
  28. --&amp;gt;  3 A y 3.14&lt;br /&gt;
  29. --&amp;gt;  3 A y 2.71&lt;br /&gt;
  30. --&amp;gt;  3 B x 0.0&lt;br /&gt;
  31. --&amp;gt;  3 B x 3.14&lt;br /&gt;
  32. --&amp;gt;  3 B x 2.71&lt;br /&gt;
  33. --&amp;gt;  3 B y 0.0&lt;br /&gt;
  34. --&amp;gt;  3 B y 3.14&lt;br /&gt;
  35. --&amp;gt;  3 B y 2.71&lt;br /&gt;
&lt;br /&gt;
You can also delete some of the generated items in the batch items list by double-clicking the item.&lt;br /&gt;
So, for instance, you can define three items manually, then generate 36 more items, and then delete any number of items from the overall (3+36) list. &lt;br /&gt;
&lt;br /&gt;
When you&#039;re done revising the items, you store them in the database by **giving a batch name** and clicking on the **commit batch** button.&lt;br /&gt;
&lt;br /&gt;
Batch is then stored in the database and ready to be run:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 6.1. Batch execution ===&lt;br /&gt;
&lt;br /&gt;
All stored batch jobs appear in the Frame tree, under the &amp;quot;Batch jobs&amp;quot; node.&lt;br /&gt;
To run the batch, select it (click on it), then right-click it and select &amp;quot;Run batch&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
The program behaves as follows:&lt;br /&gt;
&lt;br /&gt;
  repeat-until-there-are-unfinished-batch-items:&lt;br /&gt;
  |- load the first batch item (params) from list that has not been executed yet&lt;br /&gt;
  |- execute the batch item (fit)&lt;br /&gt;
  |- store the results to the database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that **the batch execution can be interrupted at any time and resumed afterwards!**&lt;br /&gt;
&lt;br /&gt;
  For instance, let&#039;s say we run a 40 items batch.&lt;br /&gt;
  The program progresses to the e.g. 20th item and then the computer powers off (or a user simply kills the program).&lt;br /&gt;
  19 items have been executed and their results stored in the DB.&lt;br /&gt;
  20-th item was interrupted and those results are &amp;quot;lost&amp;quot;.&lt;br /&gt;
  However, when the same batch is run afterwards, it will simply resume from the 20-th item and finish the whole batch.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Batchfitdialog.PNG&amp;diff=35</id>
		<title>File:Batchfitdialog.PNG</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Batchfitdialog.PNG&amp;diff=35"/>
		<updated>2023-07-18T10:12:42Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=User_manual&amp;diff=34</id>
		<title>User manual</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=User_manual&amp;diff=34"/>
		<updated>2023-07-18T10:11:39Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== User Manual ======&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 1. Running the program =====&lt;br /&gt;
&lt;br /&gt;
To run the program, you have to have Java 1.8+ installed on your computer (chances are you already have it).&lt;br /&gt;
If not, see here: http://www.java.com/en/download/help/index_installing.xml&lt;br /&gt;
&lt;br /&gt;
The program can be started either (depending on the OS) by:&lt;br /&gt;
&lt;br /&gt;
  * from the GUI: double-clicking the g.jar &lt;br /&gt;
  * from the console: when positioned in the program folder, type: &amp;quot;java -jar GisaxStudio.jar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The latter will print the potential errors into the console, which helps in error reporting/debugging&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 1. Setup new experiment =====&lt;br /&gt;
&lt;br /&gt;
Upon start, the program will report that there are no &amp;quot;experiments&amp;quot; in the database. &lt;br /&gt;
**Note: the program relies on the database to store/retrieve all data related to the experiments EXCEPT IMAGES which are kept in the file system.**&lt;br /&gt;
Data processing is logically organized into &amp;quot;experiments&amp;quot; - experiment being a way of grouping a number of images (N&amp;gt;=1) to be fitted.  &lt;br /&gt;
An experiment can consist of 1+ frames (images) and there can be any number of experiments in the database.&lt;br /&gt;
It is up to the user to structure (group) his/hers data into experiments.&lt;br /&gt;
Initial screen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Newexp01.PNG|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choose: Experiment-&amp;gt;New experiment&lt;br /&gt;
&lt;br /&gt;
Select the folder where you experiment&#039;s images (to fit) reside.&lt;br /&gt;
There are already two test images provided with the download in the /images/exp1 folder.&lt;br /&gt;
It is recommended to user relative paths, that is - to store images in the provided &amp;quot;images&amp;quot; folder, using subfolder named after the experiment. &lt;br /&gt;
This way the program (and images) can be easily copies from one computer to another without additional configuration. &lt;br /&gt;
Contrary, if you use absolute paths and point to e.g. c:\temp\images, that folder might not exist on another computer.&lt;br /&gt;
&lt;br /&gt;
Here, images/exp1 is chosen:&lt;br /&gt;
&lt;br /&gt;
[[File:Newexp02.PNG|400px]]&lt;br /&gt;
&lt;br /&gt;
Name the experiment:&lt;br /&gt;
&lt;br /&gt;
[[File:Newexp03.PNG|400px]]&lt;br /&gt;
&lt;br /&gt;
Depending on the number of tif images found there, the program will setup &amp;quot;frames&amp;quot;. &lt;br /&gt;
&#039;&#039;&#039;There has to be at least one tif image in the assigned folder.&#039;&#039;&#039; &lt;br /&gt;
In this example, there are two images in the /images/exp1 folder and so we have:&lt;br /&gt;
[[File:Newexp04.PNG|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 2. Layout ====&lt;br /&gt;
&lt;br /&gt;
Program layout is organized as shown here:&lt;br /&gt;
&lt;br /&gt;
[[File:Structure.PNG|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 3. Preprocess the image ====&lt;br /&gt;
&lt;br /&gt;
It is intended for image processing tasks (e.g. image resize) to take place outside of the program, using one of many image processing tools (e.g. ImageJ). &lt;br /&gt;
However, some rudimentary image processing operations are built into the program, namely &amp;quot;Preprocess&amp;quot; which consists of:&lt;br /&gt;
  1. Fixing negative values ( by setting them to zero)&lt;br /&gt;
  2. Auto brightness &amp;amp; contrast&lt;br /&gt;
  3. Fixing &amp;quot;dark stripes sometimes produced by detector&amp;quot; by interpolation&lt;br /&gt;
&lt;br /&gt;
So, in our test experiment, **click &amp;quot;Smooth&amp;quot;** until you&#039;re satisfied with the image. &lt;br /&gt;
Then, assign the leftmost image to be the &amp;quot;fit image&amp;quot; by clicking on &amp;quot;-&amp;gt; to fit&amp;quot; button:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Newexp05.PNG|800px]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==== 4. Adjust sampling params ====&lt;br /&gt;
&lt;br /&gt;
=== 4.1. Sampling areas (ROIs) ===&lt;br /&gt;
&lt;br /&gt;
Now that we have prepared the image, we need to define the sampling areas. If not, the whole image will be sampled.&lt;br /&gt;
**Click on the &amp;quot;Set ROIs&amp;quot;** button. A new image will pop-up, along with the ImageJ application.&lt;br /&gt;
Use ImageJ&#039;s selection tools to assign the sampling areas by:&lt;br /&gt;
(a) selecting the area &lt;br /&gt;
(b) clicking the Save ROI button&lt;br /&gt;
[[File:Setroi.PNG|600px]]&lt;br /&gt;
&lt;br /&gt;
==&amp;gt;&lt;br /&gt;
[[File:Setroi2.PNG|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you assign multiple ROIs (selections) a UNION of those areas will be used.&#039;&#039;&#039;&lt;br /&gt;
Each ROI is given a generated name, and you can delete it afterwards (it is visible in the Frame tree).&lt;br /&gt;
You can also add more ROIs later.&lt;br /&gt;
Close manually ImageJ and SetRoi window once you&#039;re done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 4.2. Raster size/specular/y0 ===&lt;br /&gt;
&lt;br /&gt;
Adjust the raster size, specular and y0 using provided sliders.&lt;br /&gt;
Fit image reflects the assigned values.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 5. Running single fit ====&lt;br /&gt;
&lt;br /&gt;
Select the frame you want to fit in the frame tree and click &amp;quot;Fit&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
A dialog with additional model parameters is presented.&lt;br /&gt;
Adjust the values if needed and click &amp;quot;Run&amp;quot;.&lt;br /&gt;
Parameter values are automatically stored in the database (if such combination doesn&#039;t already exist).&lt;br /&gt;
&lt;br /&gt;
After a 10-20 seconds, a new tab will appear in which all available fitting/optimizing algorithms will be started (in separate threads): &lt;br /&gt;
[[File:Running.PNG|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When they are done, the results will be stored in the database (and visible in the Frame tree, under the corresponding parameter node).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that you can stop/kill some algorithms if you wish, the difference being:&lt;br /&gt;
  * stop - gracefully stops the algorithm, and the results obtained so far are stored in the DB&lt;br /&gt;
  * kill - ungracefully stops the algorithm, no results from that algorithm are stored&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 6. Running batch fit ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run a batch fit, one must first define a number of parameters that will be used.&lt;br /&gt;
So (a) the parameters have to be defined, stored in the DB, and then (b) one can run a batch on those params.&lt;br /&gt;
&lt;br /&gt;
=== 6.1. Batch parameters definition ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the frame you want to fit in the frame tree **and click &amp;quot;Batch Fit&amp;quot; button.**&lt;br /&gt;
The same dialog as in single fit appears, but with additional tab that allows for programmatic parameter variations to be defined.&lt;br /&gt;
&lt;br /&gt;
There are two approaches to parameters definition:&lt;br /&gt;
&lt;br /&gt;
  * manual: vary parameters by hand and add them to the batch items set.&lt;br /&gt;
  * using script params tab: assign expressions for each parameter you want to vary&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:batchfitdialog.PNG|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 6.1.1. Manual definition ==&lt;br /&gt;
&lt;br /&gt;
Set model parameters using model dependent tabs and click &amp;quot;add to batch&amp;quot;.&lt;br /&gt;
Repeat as many times as needed.&lt;br /&gt;
Note that manual definition can be combined with the &amp;quot;script approach&amp;quot;, for instance you can define e.g. 3 batch items manually and then continue to add another N items using the script tab:&lt;br /&gt;
&lt;br /&gt;
== 6.1.2. Using script tab ==&lt;br /&gt;
&lt;br /&gt;
The upper part of the script tab (model &amp;amp; algorithms) actually pertains to both approaches - it is used to:&lt;br /&gt;
  * select the model (only one for the time being). Changing model causes the model dependent tabs to reload (TODO).&lt;br /&gt;
  * select the algorithms that will be used (regardless of what approach was used).&lt;br /&gt;
&lt;br /&gt;
The lower part allows to select any of the current model parameters and to set **the list of values** that will be used/varied (iterated).&lt;br /&gt;
Upper and lower bounds can also be assigned, but in that case the bounds list cardinality must be equal to the values list cardinality.&lt;br /&gt;
  E.g. &lt;br /&gt;
  if we want to vary param A using values: 1, 2 and 3&lt;br /&gt;
  we can also assign upper and lower bounds, but there has to be three of each.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
**The list of values** (expressions) can be assigned in two ways:&lt;br /&gt;
  * manual lists, examples: &lt;br /&gt;
    * &amp;quot;1, 5,   7&amp;quot;&lt;br /&gt;
    * &amp;quot;(1, 2),  (3, 4)&amp;quot;    -&amp;gt; those are complex numbers 1+2i, 3+4j&lt;br /&gt;
&lt;br /&gt;
  * for expression (that evaluates to a list):&lt;br /&gt;
    * &amp;quot;for(1; 10; 3)&amp;quot;   -&amp;gt; evaluates to &amp;quot;1, 4, 7, 10&amp;quot;&lt;br /&gt;
    * &amp;quot;for( (1, 1); (3, 3); (1, 1) )&amp;quot;   -&amp;gt; evaluates to &amp;quot;(1, 1), (2, 2), (3, 3)&amp;quot;, when using complex numbers abs is used to evaluate the middle &amp;lt;= expression &lt;br /&gt;
&lt;br /&gt;
When you define the values (and potentially the corresponding bound expressions), click the &amp;quot;Parse/Add&amp;quot; button to see whether the program accepts the syntax and successfully parses the expression into list.&lt;br /&gt;
You can define a number of such lists using different model parameters, and finally, when you&#039;re satisfied click &amp;quot;Add to batch&amp;quot; so that the batch items are generated and added to the list.&lt;br /&gt;
If there are more than one lists, the program will generate a Cartesian product of those lists, while preserving the order.&lt;br /&gt;
  For instance, let say you&#039;ve defined four lists (for params A, B, C and D):&lt;br /&gt;
  [1, 2, 3]&lt;br /&gt;
  [&amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;]&lt;br /&gt;
  [&amp;quot;x&amp;quot;, &amp;quot;y&amp;quot;]&lt;br /&gt;
  [0., 3.14, 2.71]&lt;br /&gt;
  the program will generate 36 = 3 * 2 * 2 * 3 items:&lt;br /&gt;
  0. --&amp;gt;  1 A x 0.0&lt;br /&gt;
  1. --&amp;gt;  1 A x 3.14&lt;br /&gt;
  2. --&amp;gt;  1 A x 2.71&lt;br /&gt;
  3. --&amp;gt;  1 A y 0.0&lt;br /&gt;
  4. --&amp;gt;  1 A y 3.14&lt;br /&gt;
  5. --&amp;gt;  1 A y 2.71&lt;br /&gt;
  6. --&amp;gt;  1 B x 0.0&lt;br /&gt;
  7. --&amp;gt;  1 B x 3.14&lt;br /&gt;
  8. --&amp;gt;  1 B x 2.71&lt;br /&gt;
  9. --&amp;gt;  1 B y 0.0&lt;br /&gt;
  10. --&amp;gt;  1 B y 3.14&lt;br /&gt;
  11. --&amp;gt;  1 B y 2.71&lt;br /&gt;
  12. --&amp;gt;  2 A x 0.0&lt;br /&gt;
  13. --&amp;gt;  2 A x 3.14&lt;br /&gt;
  14. --&amp;gt;  2 A x 2.71&lt;br /&gt;
  15. --&amp;gt;  2 A y 0.0&lt;br /&gt;
  16. --&amp;gt;  2 A y 3.14&lt;br /&gt;
  17. --&amp;gt;  2 A y 2.71&lt;br /&gt;
  18. --&amp;gt;  2 B x 0.0&lt;br /&gt;
  19. --&amp;gt;  2 B x 3.14&lt;br /&gt;
  20. --&amp;gt;  2 B x 2.71&lt;br /&gt;
  21. --&amp;gt;  2 B y 0.0&lt;br /&gt;
  22. --&amp;gt;  2 B y 3.14&lt;br /&gt;
  23. --&amp;gt;  2 B y 2.71&lt;br /&gt;
  24. --&amp;gt;  3 A x 0.0&lt;br /&gt;
  25. --&amp;gt;  3 A x 3.14&lt;br /&gt;
  26. --&amp;gt;  3 A x 2.71&lt;br /&gt;
  27. --&amp;gt;  3 A y 0.0&lt;br /&gt;
  28. --&amp;gt;  3 A y 3.14&lt;br /&gt;
  29. --&amp;gt;  3 A y 2.71&lt;br /&gt;
  30. --&amp;gt;  3 B x 0.0&lt;br /&gt;
  31. --&amp;gt;  3 B x 3.14&lt;br /&gt;
  32. --&amp;gt;  3 B x 2.71&lt;br /&gt;
  33. --&amp;gt;  3 B y 0.0&lt;br /&gt;
  34. --&amp;gt;  3 B y 3.14&lt;br /&gt;
  35. --&amp;gt;  3 B y 2.71&lt;br /&gt;
&lt;br /&gt;
You can also delete some of the generated items in the batch items list by double-clicking the item.&lt;br /&gt;
So, for instance, you can define three items manually, then generate 36 more items, and then delete any number of items from the overall (3+36) list. &lt;br /&gt;
&lt;br /&gt;
When you&#039;re done revising the items, you store them in the database by **giving a batch name** and clicking on the **commit batch** button.&lt;br /&gt;
&lt;br /&gt;
Batch is then stored in the database and ready to be run:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 6.1. Batch execution ===&lt;br /&gt;
&lt;br /&gt;
All stored batch jobs appear in the Frame tree, under the &amp;quot;Batch jobs&amp;quot; node.&lt;br /&gt;
To run the batch, select it (click on it), then right-click it and select &amp;quot;Run batch&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
The program behaves as follows:&lt;br /&gt;
&lt;br /&gt;
  repeat-until-there-are-unfinished-batch-items:&lt;br /&gt;
  |- load the first batch item (params) from list that has not been executed yet&lt;br /&gt;
  |- execute the batch item (fit)&lt;br /&gt;
  |- store the results to the database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that **the batch execution can be interrupted at any time and resumed afterwards!**&lt;br /&gt;
&lt;br /&gt;
  For instance, let&#039;s say we run a 40 items batch.&lt;br /&gt;
  The program progresses to the e.g. 20th item and then the computer powers off (or a user simply kills the program).&lt;br /&gt;
  19 items have been executed and their results stored in the DB.&lt;br /&gt;
  20-th item was interrupted and those results are &amp;quot;lost&amp;quot;.&lt;br /&gt;
  However, when the same batch is run afterwards, it will simply resume from the 20-th item and finish the whole batch.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=User_manual&amp;diff=33</id>
		<title>User manual</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=User_manual&amp;diff=33"/>
		<updated>2023-07-18T10:09:10Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== User Manual ======&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 1. Running the program =====&lt;br /&gt;
&lt;br /&gt;
To run the program, you have to have Java 1.8+ installed on your computer (chances are you already have it).&lt;br /&gt;
If not, see here: http://www.java.com/en/download/help/index_installing.xml&lt;br /&gt;
&lt;br /&gt;
The program can be started either (depending on the OS) by:&lt;br /&gt;
&lt;br /&gt;
  * from the GUI: double-clicking the g.jar &lt;br /&gt;
  * from the console: when positioned in the program folder, type: &amp;quot;java -jar GisaxStudio.jar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The latter will print the potential errors into the console, which helps in error reporting/debugging&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 1. Setup new experiment =====&lt;br /&gt;
&lt;br /&gt;
Upon start, the program will report that there are no &amp;quot;experiments&amp;quot; in the database. &lt;br /&gt;
**Note: the program relies on the database to store/retrieve all data related to the experiments EXCEPT IMAGES which are kept in the file system.**&lt;br /&gt;
Data processing is logically organized into &amp;quot;experiments&amp;quot; - experiment being a way of grouping a number of images (N&amp;gt;=1) to be fitted.  &lt;br /&gt;
An experiment can consist of 1+ frames (images) and there can be any number of experiments in the database.&lt;br /&gt;
It is up to the user to structure (group) his/hers data into experiments.&lt;br /&gt;
Initial screen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Newexp01.PNG|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choose: Experiment-&amp;gt;New experiment&lt;br /&gt;
&lt;br /&gt;
Select the folder where you experiment&#039;s images (to fit) reside.&lt;br /&gt;
There are already two test images provided with the download in the /images/exp1 folder.&lt;br /&gt;
It is recommended to user relative paths, that is - to store images in the provided &amp;quot;images&amp;quot; folder, using subfolder named after the experiment. &lt;br /&gt;
This way the program (and images) can be easily copies from one computer to another without additional configuration. &lt;br /&gt;
Contrary, if you use absolute paths and point to e.g. c:\temp\images, that folder might not exist on another computer.&lt;br /&gt;
&lt;br /&gt;
Here, images/exp1 is chosen:&lt;br /&gt;
&lt;br /&gt;
[[File:Newexp02.PNG|400px]]&lt;br /&gt;
&lt;br /&gt;
Name the experiment:&lt;br /&gt;
&lt;br /&gt;
[[File:Newexp03.PNG|400px]]&lt;br /&gt;
&lt;br /&gt;
Depending on the number of tif images found there, the program will setup &amp;quot;frames&amp;quot;. &lt;br /&gt;
&#039;&#039;&#039;There has to be at least one tif image in the assigned folder.&#039;&#039;&#039; &lt;br /&gt;
In this example, there are two images in the /images/exp1 folder and so we have:&lt;br /&gt;
[[File:Newexp04.PNG|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 2. Layout ====&lt;br /&gt;
&lt;br /&gt;
Program layout is organized as shown here:&lt;br /&gt;
&lt;br /&gt;
[[File:Structure.PNG|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 3. Preprocess the image ====&lt;br /&gt;
&lt;br /&gt;
It is intended for image processing tasks (e.g. image resize) to take place outside of the program, using one of many image processing tools (e.g. ImageJ). \\&lt;br /&gt;
However, some rudimentary image processing operations are built into the program, namely &amp;quot;Preprocess&amp;quot; which consists of:&lt;br /&gt;
  1. Fixing negative values ( by setting them to zero)&lt;br /&gt;
  2. Auto brightness &amp;amp; contrast&lt;br /&gt;
  3. Fixing &amp;quot;dark stripes sometimes produced by detector&amp;quot; by interpolation&lt;br /&gt;
&lt;br /&gt;
So, in our test experiment, **click &amp;quot;Smooth&amp;quot;** until you&#039;re satisfied with the image. \\&lt;br /&gt;
Then, assign the leftmost image to be the &amp;quot;fit image&amp;quot; by clicking on &amp;quot;-&amp;gt; to fit&amp;quot; button:&lt;br /&gt;
&lt;br /&gt;
{{:wiki:usermanual:newexp05.PNG?800|}}&lt;br /&gt;
 &lt;br /&gt;
==== 4. Adjust sampling params ====&lt;br /&gt;
&lt;br /&gt;
=== 4.1. Sampling areas (ROIs) ===&lt;br /&gt;
&lt;br /&gt;
Now that we have prepared the image, we need to define the sampling areas. If not, the whole image will be sampled.&lt;br /&gt;
**Click on the &amp;quot;Set ROIs&amp;quot;** button. A new image will pop-up, along with the ImageJ application.&lt;br /&gt;
Use ImageJ&#039;s selection tools to assign the sampling areas by:&lt;br /&gt;
(a) selecting the area &lt;br /&gt;
(b) clicking the Save ROI button&lt;br /&gt;
{{:wiki:usermanual:setroi.PNG?600|}}&lt;br /&gt;
==&amp;gt;&lt;br /&gt;
{{:wiki:usermanual:setroi2.PNG?600|}}&lt;br /&gt;
&lt;br /&gt;
**If you assign multiple ROIs (selections) a UNION of those areas will be used.**&lt;br /&gt;
Each ROI is given a generated name, and you can delete it afterwards (it is visible in the Frame tree).&lt;br /&gt;
You can also add more ROIs later.&lt;br /&gt;
Close manually ImageJ and SetRoi window once you&#039;re done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 4.2. Raster size/specular/y0 ===&lt;br /&gt;
&lt;br /&gt;
Adjust the raster size, specular and y0 using provided sliders.&lt;br /&gt;
Fit image reflects the assigned values.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 5. Running single fit ====&lt;br /&gt;
&lt;br /&gt;
Select the frame you want to fit in the frame tree and click &amp;quot;Fit&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
A dialog with additional model parameters is presented.&lt;br /&gt;
Adjust the values if needed and click &amp;quot;Run&amp;quot;.&lt;br /&gt;
Parameter values are automatically stored in the database (if such combination doesn&#039;t already exist).&lt;br /&gt;
&lt;br /&gt;
After a 10-20 seconds, a new tab will appear in which all available fitting/optimizing algorithms will be started (in separate threads): \\&lt;br /&gt;
{{:wiki:usermanual:running.PNG?600|}}&lt;br /&gt;
&lt;br /&gt;
**When they are done, the results will be stored in the database (and visible in the Frame tree, under the corresponding parameter node).**&lt;br /&gt;
&lt;br /&gt;
Note that you can stop/kill some algorithms if you wish, the difference being:&lt;br /&gt;
  * stop - gracefully stops the algorithm, and the results obtained so far are stored in the DB&lt;br /&gt;
  * kill - ungracefully stops the algorithm, no results from that algorithm are stored&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 6. Running batch fit ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run a batch fit, one must first define a number of parameters that will be used.&lt;br /&gt;
So (a) the parameters have to be defined, stored in the DB, and then (b) one can run a batch on those params.&lt;br /&gt;
&lt;br /&gt;
=== 6.1. Batch parameters definition ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the frame you want to fit in the frame tree **and click &amp;quot;Batch Fit&amp;quot; button.**&lt;br /&gt;
The same dialog as in single fit appears, but with additional tab that allows for programmatic parameter variations to be defined.&lt;br /&gt;
&lt;br /&gt;
There are two approaches to parameters definition:&lt;br /&gt;
&lt;br /&gt;
  * manual: vary parameters by hand and add them to the batch items set.&lt;br /&gt;
  * using script params tab: assign expressions for each parameter you want to vary&lt;br /&gt;
&lt;br /&gt;
{{:wiki:usermanual:batchfitdialog.PNG?600|}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 6.1.1. Manual definition ==&lt;br /&gt;
&lt;br /&gt;
Set model parameters using model dependent tabs and click &amp;quot;add to batch&amp;quot;.&lt;br /&gt;
Repeat as many times as needed.&lt;br /&gt;
Note that manual definition can be combined with the &amp;quot;script approach&amp;quot;, for instance you can define e.g. 3 batch items manually and then continue to add another N items using the script tab:&lt;br /&gt;
&lt;br /&gt;
== 6.1.2. Using script tab ==&lt;br /&gt;
&lt;br /&gt;
The upper part of the script tab (model &amp;amp; algorithms) actually pertains to both approaches - it is used to:&lt;br /&gt;
  * select the model (only one for the time being). Changing model causes the model dependent tabs to reload (TODO).&lt;br /&gt;
  * select the algorithms that will be used (regardless of what approach was used).&lt;br /&gt;
&lt;br /&gt;
The lower part allows to select any of the current model parameters and to set **the list of values** that will be used/varied (iterated).&lt;br /&gt;
Upper and lower bounds can also be assigned, but in that case the bounds list cardinality must be equal to the values list cardinality.&lt;br /&gt;
  E.g. &lt;br /&gt;
  if we want to vary param A using values: 1, 2 and 3&lt;br /&gt;
  we can also assign upper and lower bounds, but there has to be three of each.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
**The list of values** (expressions) can be assigned in two ways:&lt;br /&gt;
  * manual lists, examples: &lt;br /&gt;
    * &amp;quot;1, 5,   7&amp;quot;&lt;br /&gt;
    * &amp;quot;(1, 2),  (3, 4)&amp;quot;    -&amp;gt; those are complex numbers 1+2i, 3+4j&lt;br /&gt;
&lt;br /&gt;
  * for expression (that evaluates to a list):&lt;br /&gt;
    * &amp;quot;for(1; 10; 3)&amp;quot;   -&amp;gt; evaluates to &amp;quot;1, 4, 7, 10&amp;quot;&lt;br /&gt;
    * &amp;quot;for( (1, 1); (3, 3); (1, 1) )&amp;quot;   -&amp;gt; evaluates to &amp;quot;(1, 1), (2, 2), (3, 3)&amp;quot;, when using complex numbers abs is used to evaluate the middle &amp;lt;= expression &lt;br /&gt;
&lt;br /&gt;
When you define the values (and potentially the corresponding bound expressions), click the &amp;quot;Parse/Add&amp;quot; button to see whether the program accepts the syntax and successfully parses the expression into list.&lt;br /&gt;
You can define a number of such lists using different model parameters, and finally, when you&#039;re satisfied click &amp;quot;Add to batch&amp;quot; so that the batch items are generated and added to the list.&lt;br /&gt;
If there are more than one lists, the program will generate a Cartesian product of those lists, while preserving the order.&lt;br /&gt;
  For instance, let say you&#039;ve defined four lists (for params A, B, C and D):&lt;br /&gt;
  [1, 2, 3]&lt;br /&gt;
  [&amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;]&lt;br /&gt;
  [&amp;quot;x&amp;quot;, &amp;quot;y&amp;quot;]&lt;br /&gt;
  [0., 3.14, 2.71]&lt;br /&gt;
  the program will generate 36 = 3 * 2 * 2 * 3 items:&lt;br /&gt;
  0. --&amp;gt;  1 A x 0.0&lt;br /&gt;
  1. --&amp;gt;  1 A x 3.14&lt;br /&gt;
  2. --&amp;gt;  1 A x 2.71&lt;br /&gt;
  3. --&amp;gt;  1 A y 0.0&lt;br /&gt;
  4. --&amp;gt;  1 A y 3.14&lt;br /&gt;
  5. --&amp;gt;  1 A y 2.71&lt;br /&gt;
  6. --&amp;gt;  1 B x 0.0&lt;br /&gt;
  7. --&amp;gt;  1 B x 3.14&lt;br /&gt;
  8. --&amp;gt;  1 B x 2.71&lt;br /&gt;
  9. --&amp;gt;  1 B y 0.0&lt;br /&gt;
  10. --&amp;gt;  1 B y 3.14&lt;br /&gt;
  11. --&amp;gt;  1 B y 2.71&lt;br /&gt;
  12. --&amp;gt;  2 A x 0.0&lt;br /&gt;
  13. --&amp;gt;  2 A x 3.14&lt;br /&gt;
  14. --&amp;gt;  2 A x 2.71&lt;br /&gt;
  15. --&amp;gt;  2 A y 0.0&lt;br /&gt;
  16. --&amp;gt;  2 A y 3.14&lt;br /&gt;
  17. --&amp;gt;  2 A y 2.71&lt;br /&gt;
  18. --&amp;gt;  2 B x 0.0&lt;br /&gt;
  19. --&amp;gt;  2 B x 3.14&lt;br /&gt;
  20. --&amp;gt;  2 B x 2.71&lt;br /&gt;
  21. --&amp;gt;  2 B y 0.0&lt;br /&gt;
  22. --&amp;gt;  2 B y 3.14&lt;br /&gt;
  23. --&amp;gt;  2 B y 2.71&lt;br /&gt;
  24. --&amp;gt;  3 A x 0.0&lt;br /&gt;
  25. --&amp;gt;  3 A x 3.14&lt;br /&gt;
  26. --&amp;gt;  3 A x 2.71&lt;br /&gt;
  27. --&amp;gt;  3 A y 0.0&lt;br /&gt;
  28. --&amp;gt;  3 A y 3.14&lt;br /&gt;
  29. --&amp;gt;  3 A y 2.71&lt;br /&gt;
  30. --&amp;gt;  3 B x 0.0&lt;br /&gt;
  31. --&amp;gt;  3 B x 3.14&lt;br /&gt;
  32. --&amp;gt;  3 B x 2.71&lt;br /&gt;
  33. --&amp;gt;  3 B y 0.0&lt;br /&gt;
  34. --&amp;gt;  3 B y 3.14&lt;br /&gt;
  35. --&amp;gt;  3 B y 2.71&lt;br /&gt;
&lt;br /&gt;
You can also delete some of the generated items in the batch items list by double-clicking the item.&lt;br /&gt;
So, for instance, you can define three items manually, then generate 36 more items, and then delete any number of items from the overall (3+36) list. &lt;br /&gt;
&lt;br /&gt;
When you&#039;re done revising the items, you store them in the database by **giving a batch name** and clicking on the **commit batch** button.&lt;br /&gt;
&lt;br /&gt;
Batch is then stored in the database and ready to be run:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 6.1. Batch execution ===&lt;br /&gt;
&lt;br /&gt;
All stored batch jobs appear in the Frame tree, under the &amp;quot;Batch jobs&amp;quot; node.&lt;br /&gt;
To run the batch, select it (click on it), then right-click it and select &amp;quot;Run batch&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
The program behaves as follows:&lt;br /&gt;
&lt;br /&gt;
  repeat-until-there-are-unfinished-batch-items:&lt;br /&gt;
  |- load the first batch item (params) from list that has not been executed yet&lt;br /&gt;
  |- execute the batch item (fit)&lt;br /&gt;
  |- store the results to the database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that **the batch execution can be interrupted at any time and resumed afterwards!**&lt;br /&gt;
&lt;br /&gt;
  For instance, let&#039;s say we run a 40 items batch.&lt;br /&gt;
  The program progresses to the e.g. 20th item and then the computer powers off (or a user simply kills the program).&lt;br /&gt;
  19 items have been executed and their results stored in the DB.&lt;br /&gt;
  20-th item was interrupted and those results are &amp;quot;lost&amp;quot;.&lt;br /&gt;
  However, when the same batch is run afterwards, it will simply resume from the 20-th item and finish the whole batch.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Newexp01.PNG&amp;diff=32</id>
		<title>File:Newexp01.PNG</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Newexp01.PNG&amp;diff=32"/>
		<updated>2023-07-18T10:06:35Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=User_manual&amp;diff=31</id>
		<title>User manual</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=User_manual&amp;diff=31"/>
		<updated>2023-07-18T10:04:03Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== User Manual ======&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 1. Running the program =====&lt;br /&gt;
&lt;br /&gt;
To run the program, you have to have Java 1.8+ installed on your computer (chances are you already have it).&lt;br /&gt;
If not, see here: http://www.java.com/en/download/help/index_installing.xml&lt;br /&gt;
&lt;br /&gt;
The program can be started either (depending on the OS) by:&lt;br /&gt;
&lt;br /&gt;
  * from the GUI: double-clicking the g.jar &lt;br /&gt;
  * from the console: when positioned in the program folder, type: &amp;quot;java -jar GisaxStudio.jar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The latter will print the potential errors into the console, which helps in error reporting/debugging&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 1. Setup new experiment =====&lt;br /&gt;
&lt;br /&gt;
Upon start, the program will report that there are no &amp;quot;experiments&amp;quot; in the database. &lt;br /&gt;
**Note: the program relies on the database to store/retrieve all data related to the experiments EXCEPT IMAGES which are kept in the file system.**&lt;br /&gt;
Data processing is logically organized into &amp;quot;experiments&amp;quot; - experiment being a way of grouping a number of images (N&amp;gt;=1) to be fitted.  &lt;br /&gt;
An experiment can consist of 1+ frames (images) and there can be any number of experiments in the database.&lt;br /&gt;
It is up to the user to structure (group) his/hers data into experiments.&lt;br /&gt;
Initial screen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Newexp01.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choose: Experiment-&amp;gt;New experiment&lt;br /&gt;
&lt;br /&gt;
Select the folder where you experiment&#039;s images (to fit) reside.&lt;br /&gt;
There are already two test images provided with the download in the /images/exp1 folder.&lt;br /&gt;
It is recommended to user relative paths, that is - to store images in the provided &amp;quot;images&amp;quot; folder, using subfolder named after the experiment. \\&lt;br /&gt;
This way the program (and images) can be easily copies from one computer to another without additional configuration. &lt;br /&gt;
Contrary, if you use absolute paths and point to e.g. c:\temp\images, that folder might not exist on another computer.&lt;br /&gt;
\\&lt;br /&gt;
Here, images/exp1 is chosen:&lt;br /&gt;
{{:wiki:usermanual:newexp02.PNG?400|}}&lt;br /&gt;
Name the experiment:&lt;br /&gt;
{{:wiki:usermanual:newexp03.PNG?400|}}&lt;br /&gt;
Depending on the number of tif images found there, the program will setup &amp;quot;frames&amp;quot;. \\&lt;br /&gt;
**There has to be at least one tif image in the assigned folder.** \\&lt;br /&gt;
In this example, there are two images in the /images/exp1 folder and so we have:&lt;br /&gt;
{{:wiki:usermanual:newexp04.PNG?800|}}&lt;br /&gt;
&lt;br /&gt;
==== 2. Layout ====&lt;br /&gt;
&lt;br /&gt;
Program layout is organized as shown here:&lt;br /&gt;
{{:wiki:usermanual:structure.PNG?800|}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 3. Preprocess the image ====&lt;br /&gt;
&lt;br /&gt;
It is intended for image processing tasks (e.g. image resize) to take place outside of the program, using one of many image processing tools (e.g. ImageJ). \\&lt;br /&gt;
However, some rudimentary image processing operations are built into the program, namely &amp;quot;Preprocess&amp;quot; which consists of:&lt;br /&gt;
  1. Fixing negative values ( by setting them to zero)&lt;br /&gt;
  2. Auto brightness &amp;amp; contrast&lt;br /&gt;
  3. Fixing &amp;quot;dark stripes sometimes produced by detector&amp;quot; by interpolation&lt;br /&gt;
&lt;br /&gt;
So, in our test experiment, **click &amp;quot;Smooth&amp;quot;** until you&#039;re satisfied with the image. \\&lt;br /&gt;
Then, assign the leftmost image to be the &amp;quot;fit image&amp;quot; by clicking on &amp;quot;-&amp;gt; to fit&amp;quot; button:&lt;br /&gt;
&lt;br /&gt;
{{:wiki:usermanual:newexp05.PNG?800|}}&lt;br /&gt;
 &lt;br /&gt;
==== 4. Adjust sampling params ====&lt;br /&gt;
&lt;br /&gt;
=== 4.1. Sampling areas (ROIs) ===&lt;br /&gt;
&lt;br /&gt;
Now that we have prepared the image, we need to define the sampling areas. If not, the whole image will be sampled.&lt;br /&gt;
**Click on the &amp;quot;Set ROIs&amp;quot;** button. A new image will pop-up, along with the ImageJ application.&lt;br /&gt;
Use ImageJ&#039;s selection tools to assign the sampling areas by:&lt;br /&gt;
(a) selecting the area &lt;br /&gt;
(b) clicking the Save ROI button&lt;br /&gt;
{{:wiki:usermanual:setroi.PNG?600|}}&lt;br /&gt;
==&amp;gt;&lt;br /&gt;
{{:wiki:usermanual:setroi2.PNG?600|}}&lt;br /&gt;
&lt;br /&gt;
**If you assign multiple ROIs (selections) a UNION of those areas will be used.**&lt;br /&gt;
Each ROI is given a generated name, and you can delete it afterwards (it is visible in the Frame tree).&lt;br /&gt;
You can also add more ROIs later.&lt;br /&gt;
Close manually ImageJ and SetRoi window once you&#039;re done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 4.2. Raster size/specular/y0 ===&lt;br /&gt;
&lt;br /&gt;
Adjust the raster size, specular and y0 using provided sliders.&lt;br /&gt;
Fit image reflects the assigned values.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 5. Running single fit ====&lt;br /&gt;
&lt;br /&gt;
Select the frame you want to fit in the frame tree and click &amp;quot;Fit&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
A dialog with additional model parameters is presented.&lt;br /&gt;
Adjust the values if needed and click &amp;quot;Run&amp;quot;.&lt;br /&gt;
Parameter values are automatically stored in the database (if such combination doesn&#039;t already exist).&lt;br /&gt;
&lt;br /&gt;
After a 10-20 seconds, a new tab will appear in which all available fitting/optimizing algorithms will be started (in separate threads): \\&lt;br /&gt;
{{:wiki:usermanual:running.PNG?600|}}&lt;br /&gt;
&lt;br /&gt;
**When they are done, the results will be stored in the database (and visible in the Frame tree, under the corresponding parameter node).**&lt;br /&gt;
&lt;br /&gt;
Note that you can stop/kill some algorithms if you wish, the difference being:&lt;br /&gt;
  * stop - gracefully stops the algorithm, and the results obtained so far are stored in the DB&lt;br /&gt;
  * kill - ungracefully stops the algorithm, no results from that algorithm are stored&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 6. Running batch fit ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run a batch fit, one must first define a number of parameters that will be used.&lt;br /&gt;
So (a) the parameters have to be defined, stored in the DB, and then (b) one can run a batch on those params.&lt;br /&gt;
&lt;br /&gt;
=== 6.1. Batch parameters definition ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the frame you want to fit in the frame tree **and click &amp;quot;Batch Fit&amp;quot; button.**&lt;br /&gt;
The same dialog as in single fit appears, but with additional tab that allows for programmatic parameter variations to be defined.&lt;br /&gt;
&lt;br /&gt;
There are two approaches to parameters definition:&lt;br /&gt;
&lt;br /&gt;
  * manual: vary parameters by hand and add them to the batch items set.&lt;br /&gt;
  * using script params tab: assign expressions for each parameter you want to vary&lt;br /&gt;
&lt;br /&gt;
{{:wiki:usermanual:batchfitdialog.PNG?600|}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 6.1.1. Manual definition ==&lt;br /&gt;
&lt;br /&gt;
Set model parameters using model dependent tabs and click &amp;quot;add to batch&amp;quot;.&lt;br /&gt;
Repeat as many times as needed.&lt;br /&gt;
Note that manual definition can be combined with the &amp;quot;script approach&amp;quot;, for instance you can define e.g. 3 batch items manually and then continue to add another N items using the script tab:&lt;br /&gt;
&lt;br /&gt;
== 6.1.2. Using script tab ==&lt;br /&gt;
&lt;br /&gt;
The upper part of the script tab (model &amp;amp; algorithms) actually pertains to both approaches - it is used to:&lt;br /&gt;
  * select the model (only one for the time being). Changing model causes the model dependent tabs to reload (TODO).&lt;br /&gt;
  * select the algorithms that will be used (regardless of what approach was used).&lt;br /&gt;
&lt;br /&gt;
The lower part allows to select any of the current model parameters and to set **the list of values** that will be used/varied (iterated).&lt;br /&gt;
Upper and lower bounds can also be assigned, but in that case the bounds list cardinality must be equal to the values list cardinality.&lt;br /&gt;
  E.g. &lt;br /&gt;
  if we want to vary param A using values: 1, 2 and 3&lt;br /&gt;
  we can also assign upper and lower bounds, but there has to be three of each.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
**The list of values** (expressions) can be assigned in two ways:&lt;br /&gt;
  * manual lists, examples: &lt;br /&gt;
    * &amp;quot;1, 5,   7&amp;quot;&lt;br /&gt;
    * &amp;quot;(1, 2),  (3, 4)&amp;quot;    -&amp;gt; those are complex numbers 1+2i, 3+4j&lt;br /&gt;
&lt;br /&gt;
  * for expression (that evaluates to a list):&lt;br /&gt;
    * &amp;quot;for(1; 10; 3)&amp;quot;   -&amp;gt; evaluates to &amp;quot;1, 4, 7, 10&amp;quot;&lt;br /&gt;
    * &amp;quot;for( (1, 1); (3, 3); (1, 1) )&amp;quot;   -&amp;gt; evaluates to &amp;quot;(1, 1), (2, 2), (3, 3)&amp;quot;, when using complex numbers abs is used to evaluate the middle &amp;lt;= expression &lt;br /&gt;
&lt;br /&gt;
When you define the values (and potentially the corresponding bound expressions), click the &amp;quot;Parse/Add&amp;quot; button to see whether the program accepts the syntax and successfully parses the expression into list.&lt;br /&gt;
You can define a number of such lists using different model parameters, and finally, when you&#039;re satisfied click &amp;quot;Add to batch&amp;quot; so that the batch items are generated and added to the list.&lt;br /&gt;
If there are more than one lists, the program will generate a Cartesian product of those lists, while preserving the order.&lt;br /&gt;
  For instance, let say you&#039;ve defined four lists (for params A, B, C and D):&lt;br /&gt;
  [1, 2, 3]&lt;br /&gt;
  [&amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;]&lt;br /&gt;
  [&amp;quot;x&amp;quot;, &amp;quot;y&amp;quot;]&lt;br /&gt;
  [0., 3.14, 2.71]&lt;br /&gt;
  the program will generate 36 = 3 * 2 * 2 * 3 items:&lt;br /&gt;
  0. --&amp;gt;  1 A x 0.0&lt;br /&gt;
  1. --&amp;gt;  1 A x 3.14&lt;br /&gt;
  2. --&amp;gt;  1 A x 2.71&lt;br /&gt;
  3. --&amp;gt;  1 A y 0.0&lt;br /&gt;
  4. --&amp;gt;  1 A y 3.14&lt;br /&gt;
  5. --&amp;gt;  1 A y 2.71&lt;br /&gt;
  6. --&amp;gt;  1 B x 0.0&lt;br /&gt;
  7. --&amp;gt;  1 B x 3.14&lt;br /&gt;
  8. --&amp;gt;  1 B x 2.71&lt;br /&gt;
  9. --&amp;gt;  1 B y 0.0&lt;br /&gt;
  10. --&amp;gt;  1 B y 3.14&lt;br /&gt;
  11. --&amp;gt;  1 B y 2.71&lt;br /&gt;
  12. --&amp;gt;  2 A x 0.0&lt;br /&gt;
  13. --&amp;gt;  2 A x 3.14&lt;br /&gt;
  14. --&amp;gt;  2 A x 2.71&lt;br /&gt;
  15. --&amp;gt;  2 A y 0.0&lt;br /&gt;
  16. --&amp;gt;  2 A y 3.14&lt;br /&gt;
  17. --&amp;gt;  2 A y 2.71&lt;br /&gt;
  18. --&amp;gt;  2 B x 0.0&lt;br /&gt;
  19. --&amp;gt;  2 B x 3.14&lt;br /&gt;
  20. --&amp;gt;  2 B x 2.71&lt;br /&gt;
  21. --&amp;gt;  2 B y 0.0&lt;br /&gt;
  22. --&amp;gt;  2 B y 3.14&lt;br /&gt;
  23. --&amp;gt;  2 B y 2.71&lt;br /&gt;
  24. --&amp;gt;  3 A x 0.0&lt;br /&gt;
  25. --&amp;gt;  3 A x 3.14&lt;br /&gt;
  26. --&amp;gt;  3 A x 2.71&lt;br /&gt;
  27. --&amp;gt;  3 A y 0.0&lt;br /&gt;
  28. --&amp;gt;  3 A y 3.14&lt;br /&gt;
  29. --&amp;gt;  3 A y 2.71&lt;br /&gt;
  30. --&amp;gt;  3 B x 0.0&lt;br /&gt;
  31. --&amp;gt;  3 B x 3.14&lt;br /&gt;
  32. --&amp;gt;  3 B x 2.71&lt;br /&gt;
  33. --&amp;gt;  3 B y 0.0&lt;br /&gt;
  34. --&amp;gt;  3 B y 3.14&lt;br /&gt;
  35. --&amp;gt;  3 B y 2.71&lt;br /&gt;
&lt;br /&gt;
You can also delete some of the generated items in the batch items list by double-clicking the item.&lt;br /&gt;
So, for instance, you can define three items manually, then generate 36 more items, and then delete any number of items from the overall (3+36) list. &lt;br /&gt;
&lt;br /&gt;
When you&#039;re done revising the items, you store them in the database by **giving a batch name** and clicking on the **commit batch** button.&lt;br /&gt;
&lt;br /&gt;
Batch is then stored in the database and ready to be run:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 6.1. Batch execution ===&lt;br /&gt;
&lt;br /&gt;
All stored batch jobs appear in the Frame tree, under the &amp;quot;Batch jobs&amp;quot; node.&lt;br /&gt;
To run the batch, select it (click on it), then right-click it and select &amp;quot;Run batch&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
The program behaves as follows:&lt;br /&gt;
&lt;br /&gt;
  repeat-until-there-are-unfinished-batch-items:&lt;br /&gt;
  |- load the first batch item (params) from list that has not been executed yet&lt;br /&gt;
  |- execute the batch item (fit)&lt;br /&gt;
  |- store the results to the database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that **the batch execution can be interrupted at any time and resumed afterwards!**&lt;br /&gt;
&lt;br /&gt;
  For instance, let&#039;s say we run a 40 items batch.&lt;br /&gt;
  The program progresses to the e.g. 20th item and then the computer powers off (or a user simply kills the program).&lt;br /&gt;
  19 items have been executed and their results stored in the DB.&lt;br /&gt;
  20-th item was interrupted and those results are &amp;quot;lost&amp;quot;.&lt;br /&gt;
  However, when the same batch is run afterwards, it will simply resume from the 20-th item and finish the whole batch.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Structure.PNG&amp;diff=30</id>
		<title>File:Structure.PNG</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Structure.PNG&amp;diff=30"/>
		<updated>2023-07-18T09:59:30Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Setroi2.png&amp;diff=29</id>
		<title>File:Setroi2.png</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Setroi2.png&amp;diff=29"/>
		<updated>2023-07-18T09:59:17Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Setroi.PNG&amp;diff=28</id>
		<title>File:Setroi.PNG</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Setroi.PNG&amp;diff=28"/>
		<updated>2023-07-18T09:59:06Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Running.PNG&amp;diff=27</id>
		<title>File:Running.PNG</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Running.PNG&amp;diff=27"/>
		<updated>2023-07-18T09:58:53Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Program_flow.PNG&amp;diff=26</id>
		<title>File:Program flow.PNG</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Program_flow.PNG&amp;diff=26"/>
		<updated>2023-07-18T09:58:39Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Newexp05.PNG&amp;diff=25</id>
		<title>File:Newexp05.PNG</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Newexp05.PNG&amp;diff=25"/>
		<updated>2023-07-18T09:58:27Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Newexp04.PNG&amp;diff=24</id>
		<title>File:Newexp04.PNG</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Newexp04.PNG&amp;diff=24"/>
		<updated>2023-07-18T09:58:14Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Newexp03.PNG&amp;diff=23</id>
		<title>File:Newexp03.PNG</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Newexp03.PNG&amp;diff=23"/>
		<updated>2023-07-18T09:58:02Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Newexp02.PNG&amp;diff=22</id>
		<title>File:Newexp02.PNG</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Newexp02.PNG&amp;diff=22"/>
		<updated>2023-07-18T09:57:09Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=User_manual&amp;diff=20</id>
		<title>User manual</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=User_manual&amp;diff=20"/>
		<updated>2023-07-18T09:53:59Z</updated>

		<summary type="html">&lt;p&gt;Igor: Created page with &amp;quot;====== User Manual ======   ===== 1. Running the program =====  To run the program, you have to have Java 1.8+ installed on your computer (chances are you already have it). If not, see here: http://www.java.com/en/download/help/index_installing.xml  The program can be started either (depending on the OS) by:    * from the GUI: double-clicking the g.jar    * from the console: when positioned in the program folder, type: &amp;quot;java -jar GisaxStudio.jar&amp;quot;  The latter will print t...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== User Manual ======&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 1. Running the program =====&lt;br /&gt;
&lt;br /&gt;
To run the program, you have to have Java 1.8+ installed on your computer (chances are you already have it).&lt;br /&gt;
If not, see here: http://www.java.com/en/download/help/index_installing.xml&lt;br /&gt;
&lt;br /&gt;
The program can be started either (depending on the OS) by:&lt;br /&gt;
&lt;br /&gt;
  * from the GUI: double-clicking the g.jar &lt;br /&gt;
  * from the console: when positioned in the program folder, type: &amp;quot;java -jar GisaxStudio.jar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The latter will print the potential errors into the console, which helps in error reporting/debugging&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== 1. Setup new experiment =====&lt;br /&gt;
&lt;br /&gt;
Upon start, the program will report that there are no &amp;quot;experiments&amp;quot; in the database. \\&lt;br /&gt;
**Note: the program relies on the database to store/retrieve all data related to the experiments EXCEPT IMAGES which are kept in the file system.**&lt;br /&gt;
Data processing is logically organized into &amp;quot;experiments&amp;quot; - experiment being a way of grouping a number of images (N&amp;gt;=1) to be fitted.\\&lt;br /&gt;
An experiment can consist of 1+ frames (images) and there can be any number of experiments in the database.&lt;br /&gt;
It is up to the user to structure (group) his/hers data into experiments.&lt;br /&gt;
Initial screen:&lt;br /&gt;
&lt;br /&gt;
{{:wiki:usermanual:newexp01.PNG?200|}}&lt;br /&gt;
&lt;br /&gt;
Choose: Experiment-&amp;gt;New experiment&lt;br /&gt;
&lt;br /&gt;
Select the folder where you experiment&#039;s images (to fit) reside.&lt;br /&gt;
There are already two test images provided with the download in the /images/exp1 folder.&lt;br /&gt;
It is recommended to user relative paths, that is - to store images in the provided &amp;quot;images&amp;quot; folder, using subfolder named after the experiment. \\&lt;br /&gt;
This way the program (and images) can be easily copies from one computer to another without additional configuration. &lt;br /&gt;
Contrary, if you use absolute paths and point to e.g. c:\temp\images, that folder might not exist on another computer.&lt;br /&gt;
\\&lt;br /&gt;
Here, images/exp1 is chosen:&lt;br /&gt;
{{:wiki:usermanual:newexp02.PNG?400|}}&lt;br /&gt;
Name the experiment:&lt;br /&gt;
{{:wiki:usermanual:newexp03.PNG?400|}}&lt;br /&gt;
Depending on the number of tif images found there, the program will setup &amp;quot;frames&amp;quot;. \\&lt;br /&gt;
**There has to be at least one tif image in the assigned folder.** \\&lt;br /&gt;
In this example, there are two images in the /images/exp1 folder and so we have:&lt;br /&gt;
{{:wiki:usermanual:newexp04.PNG?800|}}&lt;br /&gt;
&lt;br /&gt;
==== 2. Layout ====&lt;br /&gt;
&lt;br /&gt;
Program layout is organized as shown here:&lt;br /&gt;
{{:wiki:usermanual:structure.PNG?800|}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 3. Preprocess the image ====&lt;br /&gt;
&lt;br /&gt;
It is intended for image processing tasks (e.g. image resize) to take place outside of the program, using one of many image processing tools (e.g. ImageJ). \\&lt;br /&gt;
However, some rudimentary image processing operations are built into the program, namely &amp;quot;Preprocess&amp;quot; which consists of:&lt;br /&gt;
  1. Fixing negative values ( by setting them to zero)&lt;br /&gt;
  2. Auto brightness &amp;amp; contrast&lt;br /&gt;
  3. Fixing &amp;quot;dark stripes sometimes produced by detector&amp;quot; by interpolation&lt;br /&gt;
&lt;br /&gt;
So, in our test experiment, **click &amp;quot;Smooth&amp;quot;** until you&#039;re satisfied with the image. \\&lt;br /&gt;
Then, assign the leftmost image to be the &amp;quot;fit image&amp;quot; by clicking on &amp;quot;-&amp;gt; to fit&amp;quot; button:&lt;br /&gt;
&lt;br /&gt;
{{:wiki:usermanual:newexp05.PNG?800|}}&lt;br /&gt;
 &lt;br /&gt;
==== 4. Adjust sampling params ====&lt;br /&gt;
&lt;br /&gt;
=== 4.1. Sampling areas (ROIs) ===&lt;br /&gt;
&lt;br /&gt;
Now that we have prepared the image, we need to define the sampling areas. If not, the whole image will be sampled.&lt;br /&gt;
**Click on the &amp;quot;Set ROIs&amp;quot;** button. A new image will pop-up, along with the ImageJ application.&lt;br /&gt;
Use ImageJ&#039;s selection tools to assign the sampling areas by:&lt;br /&gt;
(a) selecting the area &lt;br /&gt;
(b) clicking the Save ROI button&lt;br /&gt;
{{:wiki:usermanual:setroi.PNG?600|}}&lt;br /&gt;
==&amp;gt;&lt;br /&gt;
{{:wiki:usermanual:setroi2.PNG?600|}}&lt;br /&gt;
&lt;br /&gt;
**If you assign multiple ROIs (selections) a UNION of those areas will be used.**&lt;br /&gt;
Each ROI is given a generated name, and you can delete it afterwards (it is visible in the Frame tree).&lt;br /&gt;
You can also add more ROIs later.&lt;br /&gt;
Close manually ImageJ and SetRoi window once you&#039;re done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 4.2. Raster size/specular/y0 ===&lt;br /&gt;
&lt;br /&gt;
Adjust the raster size, specular and y0 using provided sliders.&lt;br /&gt;
Fit image reflects the assigned values.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 5. Running single fit ====&lt;br /&gt;
&lt;br /&gt;
Select the frame you want to fit in the frame tree and click &amp;quot;Fit&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
A dialog with additional model parameters is presented.&lt;br /&gt;
Adjust the values if needed and click &amp;quot;Run&amp;quot;.&lt;br /&gt;
Parameter values are automatically stored in the database (if such combination doesn&#039;t already exist).&lt;br /&gt;
&lt;br /&gt;
After a 10-20 seconds, a new tab will appear in which all available fitting/optimizing algorithms will be started (in separate threads): \\&lt;br /&gt;
{{:wiki:usermanual:running.PNG?600|}}&lt;br /&gt;
&lt;br /&gt;
**When they are done, the results will be stored in the database (and visible in the Frame tree, under the corresponding parameter node).**&lt;br /&gt;
&lt;br /&gt;
Note that you can stop/kill some algorithms if you wish, the difference being:&lt;br /&gt;
  * stop - gracefully stops the algorithm, and the results obtained so far are stored in the DB&lt;br /&gt;
  * kill - ungracefully stops the algorithm, no results from that algorithm are stored&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 6. Running batch fit ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run a batch fit, one must first define a number of parameters that will be used.&lt;br /&gt;
So (a) the parameters have to be defined, stored in the DB, and then (b) one can run a batch on those params.&lt;br /&gt;
&lt;br /&gt;
=== 6.1. Batch parameters definition ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the frame you want to fit in the frame tree **and click &amp;quot;Batch Fit&amp;quot; button.**&lt;br /&gt;
The same dialog as in single fit appears, but with additional tab that allows for programmatic parameter variations to be defined.&lt;br /&gt;
&lt;br /&gt;
There are two approaches to parameters definition:&lt;br /&gt;
&lt;br /&gt;
  * manual: vary parameters by hand and add them to the batch items set.&lt;br /&gt;
  * using script params tab: assign expressions for each parameter you want to vary&lt;br /&gt;
&lt;br /&gt;
{{:wiki:usermanual:batchfitdialog.PNG?600|}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 6.1.1. Manual definition ==&lt;br /&gt;
&lt;br /&gt;
Set model parameters using model dependent tabs and click &amp;quot;add to batch&amp;quot;.&lt;br /&gt;
Repeat as many times as needed.&lt;br /&gt;
Note that manual definition can be combined with the &amp;quot;script approach&amp;quot;, for instance you can define e.g. 3 batch items manually and then continue to add another N items using the script tab:&lt;br /&gt;
&lt;br /&gt;
== 6.1.2. Using script tab ==&lt;br /&gt;
&lt;br /&gt;
The upper part of the script tab (model &amp;amp; algorithms) actually pertains to both approaches - it is used to:&lt;br /&gt;
  * select the model (only one for the time being). Changing model causes the model dependent tabs to reload (TODO).&lt;br /&gt;
  * select the algorithms that will be used (regardless of what approach was used).&lt;br /&gt;
&lt;br /&gt;
The lower part allows to select any of the current model parameters and to set **the list of values** that will be used/varied (iterated).&lt;br /&gt;
Upper and lower bounds can also be assigned, but in that case the bounds list cardinality must be equal to the values list cardinality.&lt;br /&gt;
  E.g. &lt;br /&gt;
  if we want to vary param A using values: 1, 2 and 3&lt;br /&gt;
  we can also assign upper and lower bounds, but there has to be three of each.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
**The list of values** (expressions) can be assigned in two ways:&lt;br /&gt;
  * manual lists, examples: &lt;br /&gt;
    * &amp;quot;1, 5,   7&amp;quot;&lt;br /&gt;
    * &amp;quot;(1, 2),  (3, 4)&amp;quot;    -&amp;gt; those are complex numbers 1+2i, 3+4j&lt;br /&gt;
&lt;br /&gt;
  * for expression (that evaluates to a list):&lt;br /&gt;
    * &amp;quot;for(1; 10; 3)&amp;quot;   -&amp;gt; evaluates to &amp;quot;1, 4, 7, 10&amp;quot;&lt;br /&gt;
    * &amp;quot;for( (1, 1); (3, 3); (1, 1) )&amp;quot;   -&amp;gt; evaluates to &amp;quot;(1, 1), (2, 2), (3, 3)&amp;quot;, when using complex numbers abs is used to evaluate the middle &amp;lt;= expression &lt;br /&gt;
&lt;br /&gt;
When you define the values (and potentially the corresponding bound expressions), click the &amp;quot;Parse/Add&amp;quot; button to see whether the program accepts the syntax and successfully parses the expression into list.&lt;br /&gt;
You can define a number of such lists using different model parameters, and finally, when you&#039;re satisfied click &amp;quot;Add to batch&amp;quot; so that the batch items are generated and added to the list.&lt;br /&gt;
If there are more than one lists, the program will generate a Cartesian product of those lists, while preserving the order.&lt;br /&gt;
  For instance, let say you&#039;ve defined four lists (for params A, B, C and D):&lt;br /&gt;
  [1, 2, 3]&lt;br /&gt;
  [&amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;]&lt;br /&gt;
  [&amp;quot;x&amp;quot;, &amp;quot;y&amp;quot;]&lt;br /&gt;
  [0., 3.14, 2.71]&lt;br /&gt;
  the program will generate 36 = 3 * 2 * 2 * 3 items:&lt;br /&gt;
  0. --&amp;gt;  1 A x 0.0&lt;br /&gt;
  1. --&amp;gt;  1 A x 3.14&lt;br /&gt;
  2. --&amp;gt;  1 A x 2.71&lt;br /&gt;
  3. --&amp;gt;  1 A y 0.0&lt;br /&gt;
  4. --&amp;gt;  1 A y 3.14&lt;br /&gt;
  5. --&amp;gt;  1 A y 2.71&lt;br /&gt;
  6. --&amp;gt;  1 B x 0.0&lt;br /&gt;
  7. --&amp;gt;  1 B x 3.14&lt;br /&gt;
  8. --&amp;gt;  1 B x 2.71&lt;br /&gt;
  9. --&amp;gt;  1 B y 0.0&lt;br /&gt;
  10. --&amp;gt;  1 B y 3.14&lt;br /&gt;
  11. --&amp;gt;  1 B y 2.71&lt;br /&gt;
  12. --&amp;gt;  2 A x 0.0&lt;br /&gt;
  13. --&amp;gt;  2 A x 3.14&lt;br /&gt;
  14. --&amp;gt;  2 A x 2.71&lt;br /&gt;
  15. --&amp;gt;  2 A y 0.0&lt;br /&gt;
  16. --&amp;gt;  2 A y 3.14&lt;br /&gt;
  17. --&amp;gt;  2 A y 2.71&lt;br /&gt;
  18. --&amp;gt;  2 B x 0.0&lt;br /&gt;
  19. --&amp;gt;  2 B x 3.14&lt;br /&gt;
  20. --&amp;gt;  2 B x 2.71&lt;br /&gt;
  21. --&amp;gt;  2 B y 0.0&lt;br /&gt;
  22. --&amp;gt;  2 B y 3.14&lt;br /&gt;
  23. --&amp;gt;  2 B y 2.71&lt;br /&gt;
  24. --&amp;gt;  3 A x 0.0&lt;br /&gt;
  25. --&amp;gt;  3 A x 3.14&lt;br /&gt;
  26. --&amp;gt;  3 A x 2.71&lt;br /&gt;
  27. --&amp;gt;  3 A y 0.0&lt;br /&gt;
  28. --&amp;gt;  3 A y 3.14&lt;br /&gt;
  29. --&amp;gt;  3 A y 2.71&lt;br /&gt;
  30. --&amp;gt;  3 B x 0.0&lt;br /&gt;
  31. --&amp;gt;  3 B x 3.14&lt;br /&gt;
  32. --&amp;gt;  3 B x 2.71&lt;br /&gt;
  33. --&amp;gt;  3 B y 0.0&lt;br /&gt;
  34. --&amp;gt;  3 B y 3.14&lt;br /&gt;
  35. --&amp;gt;  3 B y 2.71&lt;br /&gt;
&lt;br /&gt;
You can also delete some of the generated items in the batch items list by double-clicking the item.&lt;br /&gt;
So, for instance, you can define three items manually, then generate 36 more items, and then delete any number of items from the overall (3+36) list. &lt;br /&gt;
&lt;br /&gt;
When you&#039;re done revising the items, you store them in the database by **giving a batch name** and clicking on the **commit batch** button.&lt;br /&gt;
&lt;br /&gt;
Batch is then stored in the database and ready to be run:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 6.1. Batch execution ===&lt;br /&gt;
&lt;br /&gt;
All stored batch jobs appear in the Frame tree, under the &amp;quot;Batch jobs&amp;quot; node.&lt;br /&gt;
To run the batch, select it (click on it), then right-click it and select &amp;quot;Run batch&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
The program behaves as follows:&lt;br /&gt;
&lt;br /&gt;
  repeat-until-there-are-unfinished-batch-items:&lt;br /&gt;
  |- load the first batch item (params) from list that has not been executed yet&lt;br /&gt;
  |- execute the batch item (fit)&lt;br /&gt;
  |- store the results to the database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that **the batch execution can be interrupted at any time and resumed afterwards!**&lt;br /&gt;
&lt;br /&gt;
  For instance, let&#039;s say we run a 40 items batch.&lt;br /&gt;
  The program progresses to the e.g. 20th item and then the computer powers off (or a user simply kills the program).&lt;br /&gt;
  19 items have been executed and their results stored in the DB.&lt;br /&gt;
  20-th item was interrupted and those results are &amp;quot;lost&amp;quot;.&lt;br /&gt;
  However, when the same batch is run afterwards, it will simply resume from the 20-th item and finish the whole batch.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Installation&amp;diff=19</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Installation&amp;diff=19"/>
		<updated>2023-07-18T09:51:46Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installation ==&lt;br /&gt;
&lt;br /&gt;
Gisax Studio is a multi-platform application written in Java. &lt;br /&gt;
It runs on Mac, Linux and Ms Windows. &lt;br /&gt;
However, you should first install [[https://www.java.com/en/download/help/download_options.html|Java 13+ runtime]] (if you don&#039;t already have it).&lt;br /&gt;
&lt;br /&gt;
Then, simply download and unzip this file:&lt;br /&gt;
&lt;br /&gt;
  * [https://homer.zpr.fer.hr/g_releases/gisaxstudio.zip Latest version]&lt;br /&gt;
&lt;br /&gt;
You can run the program either by double-clicking on GisaxStudio.jar or by running the &amp;quot;java -jar GisaxStudio.jar&amp;quot; from the command line.&lt;br /&gt;
&lt;br /&gt;
GisaxStudio will update itself once the newer version is released.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Installation&amp;diff=18</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Installation&amp;diff=18"/>
		<updated>2023-07-18T09:49:14Z</updated>

		<summary type="html">&lt;p&gt;Igor: Created page with &amp;quot;== Installation ==  Gisax Studio is a multi-platform application written in Java.  It runs on Mac, Linux and Ms Windows.  However, you should first install Java 13+ runtime (if you don&amp;#039;t already have it).  Then, simply download and unzip this file:    * latest version  You can run the program either by double-clicking on GisaxStudio.jar or by running the...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installation ==&lt;br /&gt;
&lt;br /&gt;
Gisax Studio is a multi-platform application written in Java. &lt;br /&gt;
It runs on Mac, Linux and Ms Windows. &lt;br /&gt;
However, you should first install [[https://www.java.com/en/download/help/download_options.html|Java 13+ runtime]] (if you don&#039;t already have it).&lt;br /&gt;
&lt;br /&gt;
Then, simply download and unzip this file:&lt;br /&gt;
&lt;br /&gt;
  * [[http://homer.zpr.fer.hr/g_releases/gisaxstudio.zip|latest version]]&lt;br /&gt;
&lt;br /&gt;
You can run the program either by double-clicking on GisaxStudio.jar or by running the &amp;quot;java -jar GisaxStudio.jar&amp;quot; from the command line.&lt;br /&gt;
&lt;br /&gt;
GisaxStudio will update itself once the newer version is released.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=MediaWiki:Sidebar&amp;diff=17</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=MediaWiki:Sidebar&amp;diff=17"/>
		<updated>2023-07-18T09:47:23Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** Installation|Installation&lt;br /&gt;
** User manual|User manual&lt;br /&gt;
** Developer manual|Developer manual&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=MediaWiki:Sidebar&amp;diff=16</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=MediaWiki:Sidebar&amp;diff=16"/>
		<updated>2023-07-18T09:46:44Z</updated>

		<summary type="html">&lt;p&gt;Igor: Created page with &amp;quot; * navigation ** mainpage|mainpage-description ** Installation ** User manual ** Developer manual&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** Installation&lt;br /&gt;
** User manual&lt;br /&gt;
** Developer manual&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=15</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=15"/>
		<updated>2023-07-18T09:46:07Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GisaxStudio Wiki Pages ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;GisaxStudio&#039;&#039;&#039; is a modular, multi-platform program for GISAXS analysis of various nanostructured materials. &lt;br /&gt;
It is written in Java programming language, featuring a graphical user interface, built-in optimization algorithms and visualization. &lt;br /&gt;
It stores all data in the relational database which facilitates data exchange and reproducibility. &lt;br /&gt;
It is free for non-commercial use.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;The development of this software is suported by HRZZ project no 2334.&#039;&#039;&#039;&lt;br /&gt;
‎&amp;lt;br /&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
‎&amp;lt;br /&amp;gt;&lt;br /&gt;
=== IBA 2015 Poster: [[Media:iba_2015_poster.pdf]] === &lt;br /&gt;
[[File:poster_thumbnail.png|200px|thumb]]&lt;br /&gt;
‎&amp;lt;br /&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
‎&amp;lt;br /&amp;gt;&lt;br /&gt;
=== ECM 2015 Poster: [[Media:ecm_2015_poster.pdf]] ===&lt;br /&gt;
[[File:ecm_poster_thumbnail.png|200px|thumb]]&lt;br /&gt;
‎&amp;lt;br /&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
‎&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:gs.jpg]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=14</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=14"/>
		<updated>2023-07-18T09:44:45Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GisaxStudio Wiki Pages ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;GisaxStudio&#039;&#039;&#039; is a modular, multi-platform program for GISAXS analysis of various nanostructured materials. &lt;br /&gt;
It is written in Java programming language, featuring a graphical user interface, built-in optimization algorithms and visualization. &lt;br /&gt;
It stores all data in the relational database which facilitates data exchange and reproducibility. &lt;br /&gt;
It is free for non-commercial use.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;The development of this software is suported by HRZZ project no 2334.&#039;&#039;&#039;&lt;br /&gt;
‎&amp;lt;br /&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
‎&amp;lt;br /&amp;gt;&lt;br /&gt;
=== IBA 2015 Poster: [[Media:iba_2015_poster.pdf]] === &lt;br /&gt;
[[File:poster_thumbnail.png|200px|thumb|left]]&lt;br /&gt;
‎&amp;lt;br /&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
‎&amp;lt;br /&amp;gt;&lt;br /&gt;
=== ECM 2015 Poster: [[Media:ecm_2015_poster.pdf]] ===&lt;br /&gt;
[[File:ecm_poster_thumbnail.png|200px|thumb|left]]&lt;br /&gt;
‎&amp;lt;br /&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
‎&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:gs.jpg]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=13</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=13"/>
		<updated>2023-07-18T09:43:31Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GisaxStudio Wiki Pages ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;GisaxStudio&#039;&#039;&#039; is a modular, multi-platform program for GISAXS analysis of various nanostructured materials. &lt;br /&gt;
It is written in Java programming language, featuring a graphical user interface, built-in optimization algorithms and visualization. &lt;br /&gt;
It stores all data in the relational database which facilitates data exchange and reproducibility. &lt;br /&gt;
It is free for non-commercial use.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;The development of this software is suported by HRZZ project no 2334.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== IBA 2015 Poster: [[Media:iba_2015_poster.pdf]] === &lt;br /&gt;
[[File:poster_thumbnail.png|200px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ECM 2015 Poster: [[Media:ecm_2015_poster.pdf]] ===&lt;br /&gt;
[[File:ecm_poster_thumbnail.png|200px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[File:gs.jpg]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=12</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=12"/>
		<updated>2023-07-18T09:41:01Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== GisaxStudio Wiki Pages ======&lt;br /&gt;
&lt;br /&gt;
**GisaxStudio** is a modular, multi-platform program for GISAXS analysis of various nanostructured materials. &lt;br /&gt;
It is written in Java programming language, featuring a graphical user interface, built-in optimization algorithms and visualization. &lt;br /&gt;
It stores all data in the relational database which facilitates data exchange and reproducibility. &lt;br /&gt;
It is free for non-commercial use.&lt;br /&gt;
&lt;br /&gt;
**The development of this software is suported by HRZZ project no 2334.**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IBA 2015 Poster: [[Media:iba_2015_poster.pdf]]&lt;br /&gt;
[[File:poster_thumbnail.png|200px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ECM 2015 Poster: [[Media:ecm_2015_poster.pdf]]&lt;br /&gt;
[[File:ecm_poster_thumbnail.png|200px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:gs.jpg]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=11</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=11"/>
		<updated>2023-07-18T09:40:17Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== GisaxStudio Wiki Pages ======&lt;br /&gt;
&lt;br /&gt;
**GisaxStudio** is a modular, multi-platform program for GISAXS analysis of various nanostructured materials. \\&lt;br /&gt;
It is written in Java programming language, featuring a graphical user interface, built-in optimization algorithms and visualization. \\&lt;br /&gt;
It stores all data in the relational database which facilitates data exchange and reproducibility. \\&lt;br /&gt;
It is free for non-commercial use.&lt;br /&gt;
\\&lt;br /&gt;
**The development of this software is suported by HRZZ project no 2334.**&lt;br /&gt;
\\&lt;br /&gt;
IBA 2015 Poster: [[Media:iba_2015_poster.pdf]]&lt;br /&gt;
[[File:poster_thumbnail.png|200px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
ECM 2015 Poster: [[Media:ecm_2015_poster.pdf]]&lt;br /&gt;
[[File:ecm_poster_thumbnail.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
[[File:gs.jpg]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=10</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=10"/>
		<updated>2023-07-18T09:38:44Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== GisaxStudio Wiki Pages ======&lt;br /&gt;
&lt;br /&gt;
**GisaxStudio** is a modular, multi-platform program for GISAXS analysis of various nanostructured materials. \\&lt;br /&gt;
It is written in Java programming language, featuring a graphical user interface, built-in optimization algorithms and visualization. \\&lt;br /&gt;
It stores all data in the relational database which facilitates data exchange and reproducibility. \\&lt;br /&gt;
It is free for non-commercial use.&lt;br /&gt;
\\&lt;br /&gt;
**The development of this software is suported by HRZZ project no 2334.**&lt;br /&gt;
\\&lt;br /&gt;
IBA 2015 Poster: [[Media:iba_2015_poster.pdf]]&lt;br /&gt;
[[File:poster_thumbnail.png|600px|thumb|left]]&lt;br /&gt;
ECM 2015 Poster: [[Media:ecm_2015_poster.pdf]]&lt;br /&gt;
[[File:ecm_poster_thumbnail.png|600px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
[[File:gs.jpg]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=9</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=9"/>
		<updated>2023-07-18T09:36:48Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* GisaxStudio Wiki Pages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== GisaxStudio Wiki Pages ======&lt;br /&gt;
&lt;br /&gt;
**GisaxStudio** is a modular, multi-platform program for GISAXS analysis of various nanostructured materials. \\&lt;br /&gt;
It is written in Java programming language, featuring a graphical user interface, built-in optimization algorithms and visualization. \\&lt;br /&gt;
It stores all data in the relational database which facilitates data exchange and reproducibility. \\&lt;br /&gt;
It is free for non-commercial use.&lt;br /&gt;
\\&lt;br /&gt;
**The development of this software is suported by HRZZ project no 2334.**&lt;br /&gt;
\\&lt;br /&gt;
IBA 2015 Poster: [[Media:iba_2015_poster.pdf]]&lt;br /&gt;
[[File:poster_thumbnail.png|600px|thumb|left|Caption]]&lt;br /&gt;
ECM 2015 Poster: {{:ecm_2015_poster.pdf|pdf}}&lt;br /&gt;
{{:ecm_poster_thumbnail.png?200|}}&lt;br /&gt;
&lt;br /&gt;
{{:gs.jpg?600|}}&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=8</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=8"/>
		<updated>2023-07-18T09:36:31Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== GisaxStudio Wiki Pages ======&lt;br /&gt;
&lt;br /&gt;
**GisaxStudio** is a modular, multi-platform program for GISAXS analysis of various nanostructured materials. \\&lt;br /&gt;
It is written in Java programming language, featuring a graphical user interface, built-in optimization algorithms and visualization. \\&lt;br /&gt;
It stores all data in the relational database which facilitates data exchange and reproducibility. \\&lt;br /&gt;
It is free for non-commercial use.&lt;br /&gt;
\\&lt;br /&gt;
**The development of this software is suported by HRZZ project no 2334.**&lt;br /&gt;
\\&lt;br /&gt;
IBA 2015 Poster: [[Media:iba_2015_poster.pdf]]&lt;br /&gt;
[[File:poster_thumbnail.png|200px|thumb|left|Caption]]&lt;br /&gt;
ECM 2015 Poster: {{:ecm_2015_poster.pdf|pdf}}&lt;br /&gt;
{{:ecm_poster_thumbnail.png?200|}}&lt;br /&gt;
&lt;br /&gt;
{{:gs.jpg?600|}}&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Poster_thumbnail.png&amp;diff=7</id>
		<title>File:Poster thumbnail.png</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Poster_thumbnail.png&amp;diff=7"/>
		<updated>2023-07-18T09:35:03Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Iba_2015_poster.pdf&amp;diff=6</id>
		<title>File:Iba 2015 poster.pdf</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Iba_2015_poster.pdf&amp;diff=6"/>
		<updated>2023-07-18T09:34:51Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Gs.jpg&amp;diff=5</id>
		<title>File:Gs.jpg</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Gs.jpg&amp;diff=5"/>
		<updated>2023-07-18T09:34:35Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Ecm_2015_poster.pdf&amp;diff=4</id>
		<title>File:Ecm 2015 poster.pdf</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Ecm_2015_poster.pdf&amp;diff=4"/>
		<updated>2023-07-18T09:34:23Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Ecm_poster_thumbnail.png&amp;diff=3</id>
		<title>File:Ecm poster thumbnail.png</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=File:Ecm_poster_thumbnail.png&amp;diff=3"/>
		<updated>2023-07-18T09:31:01Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=2</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://homer.zpr.fer.hr/gisaxstudio/index.php?title=Main_Page&amp;diff=2"/>
		<updated>2023-07-18T09:24:58Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== GisaxStudio Wiki Pages ======&lt;br /&gt;
&lt;br /&gt;
**GisaxStudio** is a modular, multi-platform program for GISAXS analysis of various nanostructured materials. \\&lt;br /&gt;
It is written in Java programming language, featuring a graphical user interface, built-in optimization algorithms and visualization. \\&lt;br /&gt;
It stores all data in the relational database which facilitates data exchange and reproducibility. \\&lt;br /&gt;
It is free for non-commercial use.&lt;br /&gt;
\\&lt;br /&gt;
**The development of this software is suported by HRZZ project no 2334.**&lt;br /&gt;
\\&lt;br /&gt;
IBA 2015 Poster: {{:iba_2015_poster.pdf|pdf}}&lt;br /&gt;
{{:poster_thumbnail.png?200|}}&lt;br /&gt;
ECM 2015 Poster: {{:ecm_2015_poster.pdf|pdf}}&lt;br /&gt;
{{:ecm_poster_thumbnail.png?200|}}&lt;br /&gt;
&lt;br /&gt;
{{:gs.jpg?600|}}&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
</feed>