Jump to content


AstroJournal - a simple software for organising observation reports

Recommended Posts

After some request from SGL members, I decided to present a small software application I have been working on in my spare time.
In essence, this program is converts user’s observation reports (using a simple defined structure) into two tidy and organised PDF documents:

As of Sep 2015, this program is a beta release, and still does not have a proper graphical user interface (gui). I apologise for this, but as I said, I am developing this in my spare time. If you are interested in contributing with new features, please, feel free to let me know, so that we can work together. 

Thanks for your interest, 
Kind regards,
An application for recording astronomy observation records in a tidy and consistent manner.
Licence: GPL v3 (2015)
This Java application imports files containing astronomy observations and generates an integrated journal document in PDF format using Latex. Observation files can be edited using a common Spreadsheet software (e.g. Google Spreadsheet, LibreOffice Calc, Office Excel) or any common text editor (e.g. MS Wordpad, Emacs, Kate, or GEdit) and must be saved as tab-separated value (tsv) files. To be recognised, fields must be separated by a TAB delimiter. No quote or single quotes should be added for marking the fields.
Features (as of 10th September 2015)
  • Generation of a PDF document containing all user observation records collected by increasing target catalogue number. This is useful for comparing targets observed over time.
  • Generation of a PDF document containing all user observation reports collected by decreasing date. This is useful for visualising one’s observations by session.
  • Execution in batch mode (via command line). 
  • Windows users can use a mini graphical window including a button for running the program. This is only temporary until a proper graphical user interface is completed.
  • Complete lists of Messier objects and Caldwell selection of NGC targets are included at the end of the generated PDF documents.
  • Although the program requires some form of structured input file, this is intentionally minimal in order to not distract the user who wants to insert his / her data rather than thinking of how to format this data. All input data is treated as a string and therefore is not parsed for controls. This leaves the freedom to the user to introduce the data content as s/he wish. For instance, although in each document header I use the Antoniadi Scale for Seeing, this can be trivially overridden with a customised one. The inserted value for the seeing is not controlled according to a specific scale. 
  • Possibility to edit the document header and the footer according to one’s need. This must be done in LaTex for preserving the format controls in the final output file.
Future features
  • Insert a new observation session using a graphical user interface (gui). 
  • Have a GUI view where the previous observations can be visualised and edited.
Requirements and Download:
To use AstroJournal you need to install:
The program can be downloaded here: https://bitbucket.org/pdp10/astrojournal/downloads .
Of note, the program size is MUCH smaller than what is reported. That is the size of the repository, which includes all the version history. After downloading and uncompressing the file, you can run AstroJournal on GNU/Linux typing:
# GNU/Linux or MacOSX users./create_journal.sh
# if you are using Windows, click on the following icon (this will start a very basic window with 1 button):create_journal.bat
How to create an observation record
As currently implemented, the format of the observation tables is specific. A sample of an observation table is provided below. The titles Date, Time, Location, Altitude, Temperature, Seeing, Transparency, Telescopes, Eyepieces, Filters, Target, Cons, Type, Power, and Notes, cannot be changed as these are used by AstroJournal to retrieve the data. All fields are separated by a TAB character (character usually placed above "Caps Lock"), which must be used. Files containing reports like the sample shown below must be saved using the .tsv extension (tab-separated value). An example of observation is as follows:
Date                 03/06/2015 
Time                 21:40-23:30 
Location           Cambridge, UK
Altitude             12m 
Temperature    12C (wind: 0km/h) 
Seeing            1 - Perfect seeing 
Transparency  5 - Clear 
Telescopes     Tele Vue 60 F6 
Eyepieces       TV Panoptic 24mm, Nagler 3.5mm 
Filters              Single Polarising Filter 
Target      Cons      Type       Power               Notes 
Jupiter      Cnc       Planet     103x +/- SPF     Write description here. 
Moon        -            Satellite    103x                   Write description here.
Examples of observations can also be found in the folder tsv_folder/ . These files can be edited with any spreadsheet (e.g. Google SpreadSheet, MS Excel, LibreOffice SpreadSheet) or a common text editor (e.g. MS Wordpad, Emacs, Kate, or GEdit). To customise the document header and footer, please look at the folder latex_header_footer to find the Latex files for the header and footer. Also these files can be edited with any common text editor.
Use case
Here are some guidelines for using AstroJournal: 
  1. Report your observations (with the structure of my tsv file) using a spreadsheet program, such as MS Excel, Libreoffice Spreadsheet, or Google Spreadsheet. Alternatively you can use a common text editor (e.g. Wordpad, GNU Emacs, Kate, etc.) as long as the fields are the same as in the samples provided in the tsv_report and that each field is separated using a TAB character.
  2. Export your file as tsv (if using Google Spreadsheet) or csv. In the latter case, when asked, select tab as field delimiter and no single or double quotation marks for the fields. Then, change the file extension from .csv to .tsv . If you used a text editor, you can save the file using the extension .tsv directly. 
  3. Put this file in the folder tsv_reports. 
  4. In the main astrojournal folder type the command above ./create_journal.sh or ./create_journal.bat .
  • Like 4
Link to post
Share on other sites


- Added support for CSV files

It is now possible to use .csv files for storing the input data. The format .tsv is still valid. Independently on the used extension (whether tsv or csv), the fields MUST be separated using a TAB character. Therefore, if the csv format is selected, the user should specify that the file is saved using TAB as delimiter instead of comma. This is required because the fields contain text and commas appear throughout one's report notes. Fields can be quoted or not.

- Folder renaming

The input folder tsv_folder is now called raw_folder, because astrojournal can now also parse .csv files aside from .tsv files. 

- Windows Users

I advise to install MiKTeX (http://miktex.org/download) instead of TeX Live. The routine pdflatex is automatically installed and works out of the box.

To correctly generate pdf documents using AstroJournal, the user should start the MiKTeX manager and install the following Latex packages: url and mptopdf 

A (very) minimal graphical user interface should start by clicking on the icon generate_journal.bat inside the astrojournal folder. Then press the button Generate Journals, and once finished, close the window.



Edited by Piero
Link to post
Share on other sites
  • 3 weeks later...
  • 4 weeks later...

Really liking the work here Piero. A great idea to be able to start storing your astronomical observations. I particularly like the TeX implementation, who doesn't love producing documents using TeX formats, makes them look far more scientific. Thanks for posting.


  • Like 1
Link to post
Share on other sites

Looking good ! thanks to people like you who make the life of people like me so much easier :)

Edited by Vox45
  • Like 1
Link to post
Share on other sites
  • 1 month later...

Today, I did some work on this application. :rolleyes: This new version 0.9 adds: 

  • Improved the AJ mini GUI to also report the program output graphically.
  • Added a configuration class for managing the program parameters.
  • Fixed a bug related to file names of galaxies.
  • AJ now supports input parameters but also Java options.

The graphical user interface is still minimal but there is sufficient output now. 

post-36931-0-81615100-1449946745.png post-36931-0-22408600-1449946752.png post-36931-0-88440100-1449946757.png

Examples of PDF generated output files can be found here (https://bitbucket.org/pdp10/aj/wiki/Home) in the section "Download".

To download the application click here: https://github.com/pdp10/AstroJournal/archive/master.zip 

For additional requirements: https://github.com/pdp10/AstroJournal#requirements

Thanks for reading,  


Edited by Piero
Link to post
Share on other sites
  • 4 weeks later...

NEW AstroJournal websIte: http://pdp10.github.io/AstroJournal/

Please, report issues / enhancements here: https://github.com/pdp10/AstroJournal/issues

Main updates:

  • New website (this contains links to the last version of AstroJournal).
  • Added Tango icon set to AJ menu items.
  • Added Darkness as new Observation parameter. This can be used for recording sky quality reading using meters such as SQM-L.
  • Creation of an executable file (.exe) for Windows users. 
  • Added menu bar, preferences and help to the GUI.
  • Input and output files are now placed in a configurable folder outside the folder containing the software AstroJournal. This folder can be edited using the Edit > Preferences menu.
  • Added internationalisation for GUI strings.
  • Improved graphical report.
  • Several bug fixes. 
  • AstroJournal now requires Java 1.7+ (Windows, GNU/Linux OS).
  • Added automated jUnit tests and log messages to notify if input raw reports contain errors.
  • If Latex is not installed, AstroJournal warns the user about this missing dependency and offers instructions for downloading this.
  • Astrojournal can also run via command line
  • Examples of raw reports are provided.




Edited by Piero
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Andy_ZH
      Hello all,
      this is my first post at SGL, and it will be quite long. I am not native a English speaker, so please excuse any mistake.
      I have quite some plan with my telescope mount and its goto control, and I am looking for some feedback and comments. If somebody else did a similar project, please let me know. And please feel free and encouraged to make suggestions, ideas, critics, etc.
      The story in a few buzzwords: Raspberry Pi Zero → direct control of TMC2209 stepper drivers via the Pi's Uart serial interface to drive my telescope mount. I am writing a software (optionally: open source?) to control the mount. The language will NOT be C, as typically used for Microcontrollers (I know for instance OneStep)
      I am using Kotlin, which is a more advanced JVM language.
      I think this should be enough information to filter the readers who are interested in reading the rest of my post.
      Now the long and detailed story:
      My professional background: I am a physicist, and did a PhD in EE (Power Electronics). Later, I became software engineer. Besides being fascinated by Astronomy, I am a tinkerer (Reprap 3D printer, electronics, …). I did grind my first mirror (a 6'' Schiefspiegler) when I was 15 years old, and I built the cookbook CCD cameras in the 90's.
      After many years without a telescope (study time, relationship, ... ), I settled down with my family, and I started to get back to Astronomy.
      Recently, I did by a quite a massive second hand mount: the “Vixen New Atlux” from another other stargazer in Switzerland. My opinion is that the New Atlux' mechanical design is superb. It has (had...) internal wiring, the counterweight bar can be hidden in the mount for transport, good polar alignment screws, it has an excellent polar finder with a dimmable LED.
      But on the other hand the electronics: two weak servo motors in combination with the incredible Starbook 5.... Seigh... the starbook...(!) it is, well... the mount is just superb, and no more comments about the starbook game boy, which shall rest in peace at the garbage dump.
      I removed the servos and all electronics, and I put 2 stepper motors into the mount, which are coupled to the gear with a timed belt. My original plan was to put an Arduino into the mount in order to control the steppers. I have an old goto Celestron cg-5 with Starsense, and it would have been quite easy to mimic - with the Arduino as interface – the servos of the old cg-5 and translate the Starsense control signals to my New Atlux. I can write C, and there is even an open source project called OneStep, which uses a Microcontroller in a similar way as I do.
      But I don't like to write C code anymore. In the 3D printer community, people need to use real time electronics to control the printer steppers. Due to the real time requirement, C with a real time microcontroler (Arduino & similar) are the only option for 3D printers.
      Do we need real time for our telescope? No. We don't need to control a lot of Motor accelerations and high speed control. For the telescope, we need to set the Motors speed precisely, and we need to drive to any position in an accurate and controllable and slow way.
      Then, there are new stepper motor drivers available with as much as 256 microsteps. The TMC2209 stepper driver , which is very well know in the 3D printer community, is not vibrating at all. It runs just smoothly, also at very low speeds. I do drive my motor with 0.25 rpm (sideral speed). In case of a slew, I can accelerate to 1500x sideral speed, which also would allow me easily to track the ISS. Wonderful.
      The current status of my project is:
      The mount is equipped with the two new motors The TMC2209 drivers are connected to the Raspberry pi GPIO Interface, and I can control them via Software. Theoretically, I could attach up to 4 motors with a single Uart interface (1 wire protocol). For instance, a focuser or a filter wheel could be attached. I selected Kotlin as language. Java also would have been possible, but I think for a new project, Kotlin will lead to a much more readable code. The TMC drivers can be driven via a chip-internal clock signal. Different to what the 3D printer community is doing (they use the step / dir pins, and create every single microstep with the microcontoller), I can send a “speed” signal from the Raspi via UART to the 2209 chip, and it will execute this speed for me without any further action. The only time critical issue was that I need to precisely count the steps that the 2209 stepper drivers executed. This is done via a GPIO pin, receiving its index signal (a pulse for every 2209 fullstep). Here comes the pain with Linux (non real-time) and the Pi: For user programs, it is impossible to guarantee that every pulse from the stepper drivers will be registered. But I cannot afford to have a step count drift over time. The solution was that I wrote a Linux kernel module in C. I wrote that I don't want to write any C code. Well, a few lines for the kernel module were indeed necessary. I can live with that, having in mind that the rest will be written in Kotlin. The only task of the Kernel module is to count every registered step at the Pi's GPIO input pins. This kernel module output is then mapped to a character device file in /dev/ for every stepper. In Kernel space, it is possible to register and count interrupts without missing even any one of them. From a hardware point of view, this is indeed everything we I need. The project cost so far: 2x10€ for the stepper drivers, 2x10€ for the motors, 2x20€ for the tooth belts and pulley, 10€ Pi Zero plus some peripheral expenses: Micro SD card, USB charger, and 1200 € for the used Vixen new Atlux mount. And a lot of time.
      I have so many ideas on how to extend the ecosystem of my software, but these ideas are for the longer term (maybe years from now on):
      Multi-star alignment. The alignment should be able to be updated continuously during an observation night. With a set of stars, it should be possible to calculate the quality of the aligment points, and e.g. drop them if they are errorneous. PEC correction (should be easy on the Pi) End-Stop support The polar alignment routines of today's goto scopes are quite good. But what I would like to have is some audio-feedback when I move the alignment screws into the right direction. Possibility to pre-plan an observation night (e.g. the mount could tell you that the Jupiter moon shadow will be on Jupiter in a few minutes). Record the telescope movements during the night in order to be able to tag any picture. The TMC drivers have much more capability than what I am using currently. For instance, they could be current controlled for slews in order to set the stepper current exactly to the value that it needs without stalling. This saves a lot of energy. The TMC drivers have a feature called “Stall Guard”. This could be used instead of endstop switches (for 3D-printers, this is done frequently). Advanced options for tracking: siderial, solar, moon speed, ISS speed. Tracking in both axis (e.g. to compensate polar misalignments of atmospheric refraction) or just in right ascension. Commercial mounts do not allow much customization here. With slow slew speeds, 5V input via a USB-C cable is sufficient for the Pi + Motors. Usb-C and newer usb battery packs allow to output a higher voltage via USB. With an “USB-trigger”, the input voltage can be selected to my needs. Higher voltage allows higher slew speeds, but consumes more power. Autoguider support, or even better: simply connect a webcam via the Pi's USB connector and do the guiding on the Pi The Raspberry Pi touch screen could be used for telescope controlls Advanced German mount limits and meridian flip control (e.g. a warning about a necessary flip when driving to a specific goto target). An Android App, connected via WiFi to the Pi could be used as display alternative Language control (have a look at Mycroft, an open-source artificial intelligence). "Hey mount, please slew to the whirlpool galaxy!" Control the mount via SkySafari and Stellarium The Pi has a built in camera interface. How about an open source auto align? The Pi could look at the stars to align itself, which makes a lot of sense. I did already order a long focal length lens and monochrome camera from Arducam in order to do some experiments (the standard Pi camera has 3.5 mm focal length and is not really usable, although star imagining is possible). My first observation site is my balcony. And there, the real Starsense does not work at all. It always spin-loops on 2 alignment positions where the sky is covered by the roof – how silly is that?. This can be done better. Further, Starsense is doing only a initial alignment. It should update its position and accuracy over the time! I think I could do this better.  
      Besides all my ideas, the first and most important focus of the software will be:
      Readability (therefore my choice of Kotlin), extensibility and open source. I like to have the Maths of the internal mount model clearly visible and understandable in the software. The calculations that are done within all our goto mounts are no rocket science. I admit, I am the nerd guy who wants to go the hard way and implement this from scratch.
      I am looking for a good project name, do you have any suggestions? How about QuickStep? this is possibly too close to OneStep and would offend the creators of OneStep?
      Does anyone of you have interest in joining my plan? Doing such a project in a small group would be more encouraging then just doing it for myself. And of course later on, I would appreciate if other stargazers would update their old mounts with my software.
      Any comments on my project plan are welcome!
      Clear Skies!

    • By jambouk
      I'm reading an interesting book, "Stargazers : the contribution of amateurs to astronomy" edited by Dunlop and Gerbaldi (1988) and one of the chapters, rather abstracts, outlines the author's criteria for differentiating professional astronomers, amateur astronomers and what he refers to as "recreational sky observers". It is only two pages long (these are transcripts of talks), and I've shown these below. It is an interesting philosophical topic, but by the definitions used, I am a recreational sky observer rather than an amateur astronomer.
      What are you?

    • By Red Dwarfer
      Just a quick report on tonight's observation . Got an AZ GOTO mount on Monday and have the 130p mounted on it ... to be honest , I was worried about getting it set up right , but after a look around SGL found the information on coordinates that were needed and it works 100% .
      3 new Messier and NGC targets were found tonight , well , 4 if you add NGC7000 , but it was too faint to count as a catch - it looked like a very faint cluster . 
      The big catches tonight were in the Ursa Major region : Bode's Galaxy M81 and the Cigar Galaxy M82 . Both were well defined and bright , even in the 5 inch reflector and I was very happy to see them for the first time . Up to now M57 was my favourite DSO , now it's joint favourite with Bode's Galaxy .
      NGC7635 Bubble Nebula was also a first and added to the list tonight . Several other targets , e.g. Pinwheel Galaxy , in Ursa Major region were attempted tonight but with no luck - maybe darker Winter skies will give better results with these .
    • By Alipentouce
      Hello everyone, I hope you are all OK.
      I just signed up for this magnificent website and I thought asking you guys some questions could be helpful.
      Well, astronomy isn't my college major but I've studied a lot about it and I consider myself an amateur astronomer.
      I needed to buy my first ever telescope and I can't decide which to buy!?
      Considering a Celestron Powerseeker50AZ and a Celestron FirstScope, Which one do you think is suitable for me and why?
    • By jambouk
      NASA are conducting a survey of amateur astronomers to see what kind of kit we are observing with and what time of the day we use it.
      It seems they are "making an assessment of the hazard potentially present to the general public as a result of NASA's satellite-based climate science lidar measurements"; this is the wording used in an email sent out by the Royal Astronomical Society.
      The survey seems fairly straight forwards:
      I know nothing more about it, sorry, but I'm happy to help NASA.
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. By using this site, you agree to our Terms of Use.