Select Page

Welcome to the EAGLE students' webpage!


This is the offical EAGLE master students’ webpage. Here you can find useful information on the EAGLE master program offered by the University of Würzburg and the German Aerospace Center (DLR), directly provided by its students.

Explore our news, read the students’ personal portraits or find FAQs and contact information.

Spectral unmixing in R

Recently, in January, I finished the development of the first version of a spectral unmixing function being part of RStoolbox, an R package offering numerous tools for remote sensing analysis written by Benjamin Leutner. The multiple endmember spectral mixture analysis (mesma) function makes it possible to unmix multi- and hyper-spectral imagery by sets of spectral endmember profiles.

For this, a non-negative least squares (NNLS) solver was implemented. NNLS is a statistical approach to fit model parameters to data, assuming that the model parameters are always expressed linearly to those not expressed by the model (unknown parameters) and that the model parameters can never be negative. There are different approaches to solve the NNLS problem. A popular one had been introduced by Lawson & Hanson (1974), which can be considered as fundamental work on practical Least Square Problems solving. It was originally published as FORTRAN code, which is still widely used, e.g. by the R NNLS package or by the Python scipy library. However, compared to newer developing frameworks and languages emerged, the FORTRAN implementation is relatively slow. Thus and to be independent from existing solutions, I wrote a C++ NNLS solver for mesma(), based on a sequential coordinate-wise algorithm (SCA) introduced by Franc et al. (2005). The latter method inherits strong control about the solver’s iteration stopping conditions.

Apart from NNLS, we are planning to add further solver methods (which is why I am currently looking for other practicable unmixing methods).

In this post, I want to demonstrate, how to use the unmixing function RStoolbox::mesma() by giving an example. It can be reproduced on any device running R and having installed the current RStoolbox beta. To do so, execute devtools::install_github(“bleutner/RStoolbox”).

First, we are going to load the Landsat example imagery delivered with RStoolbox:

#if not already done, install RStoolbox beta:
#required caret 6.0-79, which is not on CRAN yet

#load packages

#load an example dataset


To create some endmember spectra, we simply collect the spectral profiles of “water” and “land” from our imagery. We keep it simple here – instead, you could use spectra from a spectral library.

#make up some endmember spectra: water and land
em_names <- c("water", "land")
pts <- data.frame(class=em_names, cell = c(47916,5294))
em <- lsat[pts$cell]
rownames(em) <- em_names


That’s all for the pre-processing! Now you have an image and two endmembers. Note that you need to have at least two endmembers (as we have in this example) to unmix an image. Also, take a look at “em” and “lsat” before continuing: Both have the same spectral resolution (band number), which is a prerequisite. This means that if you want to use data from a spectral library for unmixing, you simply need to resample the data to the same spectral resolution of your imagery to use mesma().

Now, just call mesma(). It returns a probability raster, each layer representing one class of your endmembers, except for the last layer, which gives you the RMSE for each pixel.

#unmix the image for water and land
probs <- mesma(lsat, em, method = "NNLS")


Since we decided to develop the NNLS solver from scratch in C++ and not to use existing older FORTRAN implementations, mesma() is quiet fast. It supports parallel processing, if you want to unmix large amounts of data and have multiple CPU cores available. To do so, just create a cluster before calling mesma() using raster::beginCluster() and stop it afterwards using raster::endCluster().

Now, let us look at the output’s:

#take a look
raster::plot(probs$water, col = c("white","blue"))
raster::plot(probs$land, col = c("white","brown"))


Here are the probabilities for water…

and here they are for land:

You clearly see, how mesma() could easily differentiate between these two endmembers with only one spectrum per class. If you have ideas or find a problem, please report us via GitHub!



Franc, V., Hlaváč, V., & Navara, M. (2005). Sequential coordinate-wise algorithm for the non-negative least squares problem. In: International Conference on Computer Analysis of Images and Patterns (pp. 407-414). Berlin, Heidelberg.

Lawson, C. L., & Hanson, R. J. (1974). Solving least squares problems (Vol. 15). Siam.

Block course “Hyperspectral Remote Sensing”

One reason that makes this master’s program so attractive is its highly diverse coursework. This is being reflected by the currently available block courses. The “Hyperspectral Remote Sensing” course held by Dr.rer.nat. Martin Bachmann is part of that. In this course students receive an introduction to the world of spectroscopy and hyperspectral remote sensing, its limitations and potential.

The main focus of the seminar was working with a field spectrometer. Students got hands on experience calibrating the spectrometer using a spectralon, as well as measuring the spectral signatures of different subjects under simulated laboratory conditions. Different LAI measurements, as well as measurements of various minerals, soil types and the effect of wetness have been examined. Additionally, further studies on the impact of soil aggregate size and shadow effects were carried out.

Since the purpose of a field spectrometer is to be used in the field, the students took the opportunity to take some measurements across the campus, under the guidance and provided with the expertise of Dr.rer.nat. Martin Bachmann. Taking measurements outside introduces more factors that need to be taken in account, for example cloud coverage and the spectral behavior of solar radiance in contrast to laboratory conditions.

The software ENVI Classic has been used to visualize the measurements, calculating various statistics and for identifying features regarded to distinct spectral behaviors of different materials. Furthermore, own spectral libraries consisting of the taken measurements have been created and compared to existing libraries.

This course provided students with the knowledge how to correctly conduct field spectroscopy measurements, the impact of shadow effects, surface roughness and different viewing angles, as well as the expertise to visualize and interpret certain spectral characteristics.

Reporting from the Student’s Board

Marius Philipp

Urban Remote Sensing

Remote Sensing of Urban Geography has taken place in this semester with Hannes Taubenböck. The course covered various important topics like: Earth observation data and methods for urban environment classification, Megacities, Megaregions, Urban Corridors: New concepts and their spatial dimension and pattern, Urban time series mapping, Spatial metrics for the analysis of urban patterns and structures at regional level, Urban climate and air pollution -techniques and results using remotely sensed data.

The above-mentioned topics were presented by students who had prepared a small research paper for each topic and followed by extensive questions and answer as well as discussion related to the topic by participants. These topics gave a broad overview of how urban areas can be mapped using remotely sensed data, and participants have been introduced to major challenges and strength related to each topic.

Th course followed by practical session of urban environment classification with use of Object-based image classification method in eCognition software. Participants were introduced to make use of this classification method for better classification of urban environment with high resolution data.

The course introduced participants with new concepts related to the discussed topics, they also gained the knowledge of how to use a powerful software for classification high resolution data in heterogenous urban environment.

This course gave basic foundation and required knowledge for further urban studies with remotely sensed data and will be followed with advance course in summers term.


Photoshooting for the EAGLE Website

Another Year, another generation of students. After our studies began there was also the need for updating the EAGLE students’ webpage in order to reveal the new generation of EAGLEs to the world. The first step was of course the creation of a group photo, as well as individual profile pictures that introduce each EALGE student.

But next to that, some additional photo shooting took place, so that some stock photos for the website could be submitted. Pictures during several lectures, learning events and other occasions were taken and uploaded in order to give a small insight in the daily life and work of us EAGLE students.

These photo shootings tend to be quite fun and will definitely continue throughout our studies to keep the website and anyone interested in this master’s program up to date.

Reporting from the Student’s Board

Marius Philipp

Bavarian Mountains, East-German Landscapes and a Party: The First EAGLE Summer Term

On the road to MICMOR

Now the new EAGLEs are arriving and an exciting second year is about to start. But first let’s take a look back at an enjoyable summer term.

We were right off to a promising start by visiting the KIT (Karlsruhe Institute of Technology) Campus at Garmisch-Partenkirchen and listing to interesting talks of the MiCMoR PhDs about researching alpine regions. All this happened in front of breathtaking scenery, the Bavarian Alps, especially the Zugspitze, which is the highest mountain of Germany

Back in Würzburg we had quite a few interesting courses from modeling species distribution to yield prediction and other remote sensing applications related to Land and Water management.

The highlight of the term (IMHO) was our one-week field trip to Demmin, where we were given an introduction into the field work of agriculture related earth observation. It was an intense and highly interesting week full of discussions, late night- analyses and of course a ton of fun. Therefore I’d like to thank Christopher Conrad and Thorsten Dahms for accompanying and teaching us on this field trip.

Field Work in East Germany

As the summer term was quite short, there was no time to rest. The next event was mostly organized by us students. The EAGLE summer dialogue was a great opportunity for an exchange between members and alumni of the chair, the DLR-DFD and the students. On this joyful evening I dare say we did a quite impressive job as hosts, especially regarding the fact that many of us haven’t organized such a kind of party before. My special thanks go to Christopher Conrad and Stefan Dech for providing the necessary support behind the scenes.

As I said before we had no time to rest, since the end of term was approaching fast. While finishing our assignments some of us also had to prepare for the traditional end of term block courses given by DLR-members. So we had a short but quite informative course by Claudia Künzer. In combination with the simulated conference constructed by Martin Wegmann it was and intensive finish of a densely packed term full of interesting and informative courses.

But we are not done yet. Eight of us went on another field trip. This time we ended up in the Steigerwald research station in Fabrik Schleichach (Upper Franconia). The goal of this course was to engage in a sort of cooperation with students from the biology master program. Now we were given a really nice opportunity to use our knowledge of remote sensing to overcome the tasks of explaining the behavior/ distribution of bats and insects. On this occasion we conducted- I am quoting: “impressive”- analyses (whatever that means). In sum it was a very fun and enjoyable experience and I’d like to thank Martin Wegmann for making this field trip (probably he’d like me to add the word “awesome”) possible but even greater thanks goes to our formidable host Jörg Müller, who is the head of the research station.

As you can see, we had quite a nice and intense term and I hope that all the people we came across during this semester can keep up the really good work, when it comes to teaching the new EAGLES. So that someday even by German standards the word “awesome” is justified.

Reporting for the Students’ Board

Johannes Löw

A review of the first semester from a students’ representative perspective


At our first day in the EAGLE program we were given an introduction suggesting nearly endless possibilities for us the EAGLE students. Honestly speaking it was quite appealing, but it also resulted in high expectations regarding the program. So did the lecturers deliver accordingly? I would say that they did. We had an interesting semester packed with a lot of information, especially for those with no or a minor remote sensing background. Now everybody has a basic understanding of remote sensing and its methods. Furthermore, thanks to Martin Wegmann all the students are now capable of implementing it in a small R-code.

Since it is the first run of this program, nothing is perfect yet. There are some minor issues due to unpredicted consequences of our first concept of the program. In these cases the students’ board and the lecturers are working closely together to find solutions suited for both parties. These cases usually evolve around the suitability of examination types, the workload of single courses or the transparency of regulations regarding the program. In most cases the problems are easily solved. Additionally, due to the close contact we were able to negotiate some deals, which come close to initially promised possibilities allowing the students adapt their timetable according to their interests, as far as it is possible in the European Bologna-system.

In sum, I would say, we are off to a good start, but to create a highly appealing program a lot of work has yet to be done. And since we had an end of term meeting with Claudia Künzer, Martin Wegmann and Christopher Conrad, our suggestions, how the program could be improved, have already been communicated. As a result we had a long fruitful discussion about our program. With this very productive meeting in mind we are curious about the new challenges that will arise in the next semester. [written by Johannes, reporting for the students’ board]


Sources: (

An EAGLE’s view on the annual congress of the German Society of Photogrammetry and Remote Sensing

This year the Germany Society of Photogrammetry and Remote Sensing (DGPF) introduced the students’ forum as an additional feature of its annual congress. The presentations during this forum were more or less informative depending on your knowledge of the subject. To be fair, there was a slight emphasis on the P for Photogrammetry in DGPF, but it was hardly recognizable. Therefore we are now quite well informed of different professional fields in photogrammetry and geodesy. There was also an exhibition of some companies related to remote sensing and photogrammetry and it was ideal to increase your supply of ball pens. Furthermore, we gained some insights about drone fabricants and suppliers for all sorts of spectrometers. Additionally, HP had brought a printer that produced many beautiful posters of aerial or satellite images, which could be taken for free. Of course we immediately acquired one for our students’ representative office. The second part of the congress encompassed applicant forums related to different topics ranging from geodesy to geo-informatics. Since we have been briefed quite thoroughly in photogrammetry, we chose to attend talks about remote sensing. The talks covered a wide range of topics; remote sensing of vegetation, different applications of SAR based earth observation and also the combination of archeology, historical aerial imagery and remote sensing. The latter was presented by one of the EAGLE lecturers Dr. Tobias Ullmann.

Since every good scientific report has a conclusion and an outlook, we have to present one too:

The four days were quite interesting and provided us an opportunity to gain broader insights in remote sensing and especially in photogrammetry (indeed a quite good opportunity regarding the fact that both subjects are sometimes presented in the same journals). Due to the slight emphasis on photogrammetry, we also gained the impression that earth observation in Germany is treated as an orphan, at least in some scientific communities. But nevertheless, we had four days full of great new input; some of it may be used for our own ideas. Most certainly, we are now somewhat hooked by the idea of going to more conferences and are on the lookout for more possibilities to do so.

Finally we like to thank Christopher Conrad for providing us with this opportunity and we hope he will be this generous, when we find another interesting conference to go to. [written by Johannes Loew]


Sources: DPFG (

EAGLE students visit the DLR in Oberpfaffenhofen


One week ago, on the 9th of December, the EAGLE students and lecturer Christopher Conrad made their ways from Würzburg all the way down to Oberpfaffenhofen to visit the DLR-EOC. The aim of the excursion was to show the students the working environment of the collaborating institute of the EAGLE Master, the German Remote Sensing Data Center (DFD) within the Earth Observation Center at the DLR. Together with the students from the Global Change Ecology program, we were invited by the EOC to listen to several presentations and to explore the German Space Operations Center (GSOC), located in the Insitute of Astronaut Training and Space  Operations. Talks were held by DLR staff from different working groups such as the Center for Satellite Based Crisis Information (ZKI). The following topcis had been presented:

  • Welcome and DLR overview (Doris Klein)
  • Forest Cover Loss in Paraguay and Ecosystem Service Approaches (Emmanuel Da Ponte)
  • Mapping natural resources using imaging spectroscopy (Stefanie Holzwarth)
  • German Space Operations Center (GSOC)
  • Remote sensing for the support of humanitarian aid (Konstanze Lechner)
  • Center for Satellite Based Crisis Information (ZKI) (Alexander Mager)
  • Earth observation with SAR (Birgit Wessel)
  • The century of the cities – Monitoring the transformation of the global urban environment using EO-data (Hannes Taubenböck)
  • Movement and behavior modes of white storks in relation to settlement patterns and structures (Ines Standfuss)
  • Air pollution in megacities (Thilo Erbertseder)


The day at the DLR was an interesting experience for the EAGLE students. We got an overview on a variety of applications of remote sensing and how the knowledge we gain in the program will be applied in research. For sure, some of us will come back to the DLR-EOC for an internship within the next years. We thank the DLR for inviting us and everyone who prepared a presentation: you made us develop the taste for it! [written by Sarah Nolting]

The EAGLE students went online 🙂


Hello internet! Here we are, the 2016 EAGLE students. After some time of work, the we finally created our own webpage – to provide all interested users breaking news directly from the interior of the EAGLE master program! Find general information on the program, get insight into the students’ perspectives on the courses and events or just look at the nice pictures, we are planning to share. Feel free to contact us, if you have questions about EAGLE, the University of Wuerzburg, studying in Germany or ourselfs. Let us excite you about our study program!

Install every missing R package in one go

Before submitting a project or setting up R on a new system, this function might come in handy. You can put all your favourite or required packages into a single vector and check if they’re already installed.

If not, packageChecker() will take care of that.

packageChecker <- function(requiredPacks){
  check <- requiredPacks %in% installed.packages()[,"Package"]
  for(i in 1:length(check)){
    if(check[i] == FALSE){

# execution
requiredPacks <- c("pwltools", "sp", "raster", "ggplot2", "RStoolbox")


Once I completed coding this, I realized that installing the packages might only be half the job. You’ll most likely want to load them into your R session before executing the rest of your code.

While researching how to operate vectors on library() I found a neat existing solution.
But adding this inside the loop will do the trick.

sapply(requiredPacks, require, character.only = TRUE)


Thanks to Steven Worthington.


Backslash Converter for R

Every now and then some of us have to work on a campus terminal. And most of the time you want to take the code and data with you. So you do what every student does – you hook up your own usb-drive and change work directories in RStudio.

But as soon as you start copy-pasting your directory from the OS [win10] to


the first thing you notice is that R-syntax doesn’t like the \backslash and throws an error.
Since \backslash is a special operator to suppress metacharacters or escape sequences, it can’t be escaped without a second backslash.

So if you want to feed your code multiple datasets from different directories, you correct every directory manually. And campus terminal directories tend to be annoyingly long, where you have to change about 10 \backslashes each.

Not anymore.

This little snippet lets you copy-paste and set any directory you like in a second.

backslashConverter <- function(x){
  x <- readline()
  gsub("\\\\", "/", x)

set.wd <- function(){

# execution


How it works:

  • the function backslashConverter calls another function – readline() and saves your copied directory into the variable x.
  • readline() converts every single \ (from your directory) into a double \\. This way R won’t throw an error anymore.
  • gsub() matches every double \\ in the string x and replaces it with /.
    (this one is a little confusing, because a double \\ should look like \\\\, because in R it’s still an operator, so you open and close it twice.)
  • set.wd() is now your own function for set a directory. It calls the backslashConverter() and sets a new directory without changing anything manually.

New 2017 EAGLE students welcomed

The new 2017 EAGLE students have been welcomed to Wuerzburg and recently started their studies. Our webpage will be updated as soon as reports and photos about the new students are available.

EAGLE and Department of Remote Sensing Summer BBQ

Since the first ever semester of the EAGLE program has come to an end, we think it is time to come together and enjoy a nice summer evening. On the 23d of June, the EAGLE students invite to a great BBQ at the University of Würzburg. We hope for a good mixture of students, lecturers and other EAGLE interested people. The party will be a great place to share the experiences and information with each other. If you are interested to join, please fill in the contact sheet. More information will be provided via email – stay tuned!

Number of 2017 EAGLE Students

Start of Summer Semester 2018