2017. szeptember 14., csütörtök

SoCiS Status report - What is going on?

There was a big silence from my side regarding the improvements in the past month... Sorry about that, but do not worry, I am summarizing up everything below now: 😉

In the official repo you can find right now these two classes:

  • Transform
  • Visibility
Transform's basic purpose to provide a DFT (Discrete Fourier Transformation) and an IDFT (Inverse Discrete Fourier Transformation) method which can be used to create visbility values from intensity maps and in the other way around.

An example for the usage of the DFT method:

Converting an intensity map into visibility values with DFT method

You can find more information about the Transform class on the github wiki of the project.

And now about the Visibility class. During synthesis imaging the data comes from different telescopes with different distance from each other. As a result of this we can create images with the same angular resolution what we would get by using a telescope with the size of what is the distance between our two most distant telescopes.
These telescopes measure the so called visibility values which is a phase and intensity information at the same time. This can be represented by complex values. The Visibility class is able to store the different needed informations and to use this data in various ways.

With it you can create visibility values from intensity maps and from visbility values intensity maps. For details please check the corresponding github wiki page.

And this is the point where CLEAN appears. If your data is not perfect, or if the u, v coordinates do not form a regular grid different artifacts going to appear on the final image. To remove these from the final image I implement Högbom's CLEAN method. This is based on the assumptation if we convert our visibility values into an intensity map, the brightest pixel will represent an actual point source. Because of that this method builds up a sky map model in an iterative process. Later on this is used to clean the not wanted artifacts from the final image.

I implemented this algorithm in a way but it still needs some debug hours because right now, it does not do what it should 😐  It is working!


Imagine this is the dirty map what should be cleaned:

Dirty map


The clean map what we would like to get:

Clean map

What I currently get using my implementation:

My result


What I get using my implementation:
My result


As it can be seen, only one of the point sources has been found. The most intense one. This is not how it should work because the noise level is neglectable in comparsion with the real features of the image.

Both point sources have been found! 😃

Besides this I also started to work on to support to use SunPy Maps beside the numpy arrays, to provide support for RHESSI visibilities and to use fits files, but for now I can not show anything from them. You can check out their state on my fork of sunpy/xrayvision.


See you next time!

2017. július 9., vasárnap

SoCiS - First status report - Xrayvision

In the past two weeks I got to know to SunPy. I learned about the modules (especially about SunPy Map and Sunpy IO) which will be important this summer. Besides that I spent time with understanding some IDL codes what can be used as a model for the first implementation of the proccess.

We have our new repo here: https://github.com/sunpy/xrayvision

At the moment it is empty (besides the module template), but soon this is going to change.

The first update will be a data structure which can represent the visibilities. For more info visit the issue.

Stay tuned!

2017. június 23., péntek

SunPy - X-ray VIsibility Synthesis ImagiNg or Xray-VISION - SoCiS 2017

I am pleased to inform you  this summer I am going to work on to create a library for SunPy which enables to create interpretable maps in cases of when the base lines for synthesis images are not following a regular pattern. This library's focus will be to compensate the effect of such cases.

You can find more details about the topic in this article.

Also the upper link contains the reference for the first algorithm (CLEAN) what I am going to implement. My current status is that playing around with little aspects of this task and I try to come up with a good concept how to actually do it. So I spend most of my time reading about it. And thinking about how to do it in a good way. :)

My little bit "more technical" proposal for this summer can be found here at github.

And at the end, I would like to thank for the SunPy community and ESA that I can participate in this program this summer. I hope my work is going to reach the expectations :)

So keep tuned, my next post will contain more actual details! :D

2015. augusztus 21., péntek

Marble Maps - Find your way and explore the world on Android!


Update 1: Google Play still not has the newest version, but it is incomming in the following days
Update 2: There is an open beta version now, you can get it from here from Google Play.

Marble Maps has the following features:
  • Wondering around on the map
    • You can move the map with one finger by dragging the map with it
    • It will increase the zoom if you touch double times fast to the map
    • You can also zoom with two fingers (only supported on multitouch devices)
  • Handling your position
    • You can check your position on the map
    • You can check the distance and direction to your position when your position is not visible
    • You can center the view to your position
  • Routing
    • You can plan routes via interactive placemarks, you have to search for something and after that, you can use the result as a waypoint
    • Also, you can modify the route instead of the interactive waypoints with the route editor which is available from the menu

    • To get the routing instructions, visit the menu too
    • You can select from three routing profile: with car, with bike or as a pedestrian
  • Navigation
    • You can navigate on the route what you have planned previously, or you can also navigate to a single destination
    • Marble Maps shows your position on the route with a different icon
    • It provides turn-by-turn based navigation
    • It uses the Text To Speech interface of the Android system to provide voice instructions. To use it, please install it from Google Play
    • It shows the next instruction and its distance too
    • The current speed and the distance to the destination is also visible 

Some techincal background:
Marble's base source code in this summer has become Android compatible. If you want an Android app can be built on the top of it. Any map can be loaded in, and all of the projections are available. It supports some plugins too.




And finally my personal experience about the summer:
I liked to work on this project very much because I have learned a lot of new things, like coding technics, I have got closer to QML and I also have had a deeper insight on how Android applications work. It was also good to work with the people of the community. I would like to thank to everybody who helped me this summer, especially to Dennis Nienhüser and to Torsten Rahn. Without them Marbe on Android would be still a dream.

Thank you Google for this fantastic opportunity!

But the story is not end here, so stay tuned...

2015. július 1., szerda

The Earth, on Android

In the previous month I worked on compiling Marble widget to Android. It was a long and hard road but it is here:


(I shot this screenshot on my phone)

The globe can be rotated, and the user can zoom with the usual zooming gesture. Here is a short video example:

The hardest part was to figure out, how to compile everything with cmake instead of qmake and Qt Creator. There are some very basic things what can sabotage your successfully packaged and deployed app. For example if you did not set a version number in cmake for your library...

As you maybe know Marble also uses some elements of QtWebKit, but this is not supported on Android. So I introduced some dummy classes to substitute these (of course, not in their useability) to be able to compile Marble for Android.

You can find here step-by-step instructions, how to compile Marble Maps for Android:
https://techbase.kde.org/Projects/Marble/AndroidCompiling

The next steps:
We have decided to separate Marble's functionality into two separate apps. I introduce you Marble Maps and Marble Globe. As their name suggests Marble Map will be essentially a map application with navigation, and Marble Globe will be an app where you can switch to other planets, view historical maps, etc. what also can be used for teaching purposes.

The main goal for the summer to give life for Marble Maps. But if everything goes fine, Marble Globe can be expected too.

To close this article, here are some screenshots:







2015. május 27., szerda

It is official, Marble is coming to Android

First, I would like to announce, I have been chosen as a Google Summer of Code student and my task is to provide a working version of Marble on Android at the end of the summer.
This is a very important for Marble, because Marble currently only available on Desktop and on same rare mobile platforms (Maemo, MeeGo) but on the most widespread platform (Android), not. It is very sad because it is more and more common in education systems that they use TVs, tablets and smartphones with Android so they can’t use Marble as an educational tool.
The supported Android platforms will be Android v2.3.3 (API level 10) and higher, because it will be ported with Qt for Android.

The work has been started. Stay tuned...

2014. szeptember 6., szombat

SOCiS 2014 is over

First of all I would like to say thank you to ESA and to Marble for this great opportunity. It was fun! I would like to say thank you especially to Torsten Rahn who guided me through the summer and to other people who helped me. I also want to thank to Maxime Perrotin who organized this and to everybody who helped in it. And now, about my work in the summer:
As you may now I worked on a new feature in Marble, supporting panoramas. I think everybody can imagine what this means. You can view for example panorama photos taken by rovers on Mars in Marble. Here is a little showcase:



But if you want, you can use it to other purposes too:


And now more technical informations about my work. I can split up my work to two big parts: reading, exploring, understanding the code and writing, plotting, debugging the code. A lot of time I have to refactor my code because to be more similar in style and in idea to the existing codebase, but I learned a lot from it.

In the summer I worked on the following things:
  • KMLs can be used with <PhotoOverlay> tags. Marble can handle them (on any planet) and mark them on the map with an icon specified by its style.
  • You can click on these marks, it will cause a popup like what will appear when you click on a placemark but it will contain a little preview image. This popup has other special abilitys too. It comes with a new button in the toolbar, which will create a new session for you. This will display your image. So just search for this button:
  • I meantioned before it will open a new session. This was an other fruit of this summer. I have put down the basics for session handling so you can return to your previous session after viewing a panorama. Just search for the "Close Session" button on the left. I'm sure more improvements will arrive in time.
  • And don't forget an other importent thing: when you opened a panorama you can open a new KML which will place its content in your panorama so you can achieve an effect like in Google's Streetview.
I still have more ideas how to improve this, so in the following months I know what will I do.