Compiling and Setting up OpenTripPlanner with Dynamic Transfer Pattern on CentOS

Multimodal Trip Planning with dynamic costs (for example originating from predictions) were focus of Sebastian Peters Bachelors thesis and our paper at AGILE 2017. In the following, I give a step by step tutorial how you may set up Sebastian Peters OpenTripPlanner implementation of Dynamic Transfer Patterns on your CentOS machine.

Step 1) Prepare your system

# install git & wget
sudo yum install git
sudo yum install wget
# install vim
sudo yum install vim
# install jdk 1.8
sudo yum install java-1.8.0-openjdk
sudo yum install java-1.8.0-devel
# install maven
sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
sudo yum install apache-maven

Step 2) Clone repository

git clone https://tliebig@bitbucket.org/tliebig/developvm.git 
git checkout origin/transferpatterns

Step 3) Build OTP from the sources

cd devolp-vm-with-gui/OpenTripPlanner-master
mvn clean package -DskipTests
mvn compile
mvn package -DskipTests

Step 4) Run OTP

cd target
java -Xmx2G -jar otp-0.20.0-SNAPSHOT-shaded.jar --build . --buildTp --basePath .

More Information

  • T. Liebig, S. Peter, M. Grzenda, and K. Junosza-Szaniawski, “Dynamic Transfer Patterns for Fast Multi-modal Route Planning,” in Societal Geo-innovation: Selected papers of the 20th AGILE conference on Geographic Information Science, A. Bregt, T. Sarjakoski, R. van Lammeren, and F. Rip, Eds., Cham: Springer International Publishing, 2017, pp. 223-236.
    [Bibtex] [[PDF] Draft]
    @inbook{liebig17,
    author={Liebig, Thomas and Peter, Sebastian and Grzenda, Maciej and Junosza-Szaniawski, Konstanty},
    editor={Bregt, Arnold and Sarjakoski, Tapani and van Lammeren, Ron and Rip, Frans},
    title={Dynamic Transfer Patterns for Fast Multi-modal Route Planning},
    bookTitle={Societal Geo-innovation: Selected papers of the 20th AGILE conference on Geographic Information Science},
    year={2017},
    publisher={Springer International Publishing},
    address={Cham},
    pages={223--236},
    isbn={978-3-319-56759-4},
    url={http://dx.doi.org/10.1007/978-3-319-56759-4_13}
    }

Chapter on Privacy in Spatio-Temporal data in press

The following chapter is in press:

  • T. Liebig, “AI-based analysis methods in spatio-temporal data mining,” in AI: Philosophy, Geoinformatics & Law, M. Jankowska, M. Pawelczyk, and M. Kulawiak, Eds., Warsaw: IUS PUBLICUM, 2015, pp. 135-152.
    [Bibtex] [[PDF] Draft]
    @incollection{liebig16a,
    title={AI-based analysis methods in spatio-temporal data mining},
    author={Liebig, Thomas},
    booktitle={AI: Philosophy, Geoinformatics \& Law},
    pages={135--152},
    year={2015},
    publisher={IUS PUBLICUM},
    address={Warsaw},
    editor={Marlena Jankowska and Miroslaw Pawelczyk and Marcin Kulawiak}
    }

I’m glad the chapter received a great review:

”…Even though many of the articles in the book contain highly technical subject matter, lawyers—and particularly those with an interest in privacy law—may nevertheless find some uniquely useful information. Thomas Liebig’s piece on AI-based analysis methods in spatio-temporal datamining provides a good example of this. Liebig delves deeply into an understanding of where the technology behind privacy law may be headed, including a detailed discussion of location identification and re-identification technologies…”.
Dr. Dan Nabel
Los Angeles, 10 December 2015

Software for AGILE talk on Privacy Preserving Aggregation released

Please find below the source code for my upcoming presentation at the AGILE conference 2015 held in Lissabon for the following publication (The main idea is depicted in the figure.)
architecture

  • T. Liebig, “Privacy Preserving Centralized Counting of Moving Objects,” in AGILE 2015, F. Bacao, M. Y. Santos, and M. Painho, Eds., Springer International Publishing, 2015, pp. 91-103.
    [Bibtex] [[PDF] Draft]
    @incollection{liebig15,
    year={2015},
    isbn={978-3-319-16786-2},
    booktitle={AGILE 2015},
    series={Lecture Notes in Geoinformation and Cartography},
    editor={Bacao, Fernando and Santos, Maribel Yasmina and Painho, Marco},
    title={Privacy Preserving Centralized Counting of Moving Objects},
    URL={http://dx.doi.org/10.1007/978-3-319-16787-9_6},
    publisher={Springer International Publishing},
    author={Liebig, Thomas},
    pages={91-103},
    }

Download the following R package securecount_1.0.tar.gz and execute in R Console:

# Installation of securecount
install.packages("securecount_1.0.tar.gz", repos = NULL, type="source")
# Loading the package
require("securecount")
# Starting the example
exampleSC()

On start of exampleSC(), you will receive an output similar to the following.

We assume a single cell, with 3 moving objects.
 In every round they transmit their count to a server
which aggregates these values.

Initializing
 .. generating keys
 .. generating shares
 .. generating hashchain
 DONE
Starting Loop

Timestamp : 1
   Client 1 computes:
      message 47
      hash*message 1081
      E(hash*message) 101025
   Client 2 computes:
      message 35
      hash*message 805
      E(hash*message) 394010
   Client 3 computes:
      message 65
      hash*message 1495
      E(hash*message) 316702
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):3381
      D(share combine)*hash^(-1):147
   homomorphytest: 47 + 35 + 65=147=147 is TRUE

Timestamp : 2
   Client 1 computes:
      message 83
      hash*message 1909
      E(hash*message) 40272
   Client 2 computes:
      message 63
      hash*message 1449
      E(hash*message) 277586
   Client 3 computes:
      message 34
      hash*message 782
      E(hash*message) 451529
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):4140
      D(share combine)*hash^(-1):180
   homomorphytest: 83 + 63 + 34=180=180 is TRUE

Timestamp : 3
   Client 1 computes:
      message 63
      hash*message 1449
      E(hash*message) 277586
   Client 2 computes:
      message 1
      hash*message 23
      E(hash*message) 132210
   Client 3 computes:
      message 35
      hash*message 805
      E(hash*message) 394010
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):2277
      D(share combine)*hash^(-1):99
   homomorphytest: 63 + 1 + 35=99=99 is TRUE

Timestamp : 4
   Client 1 computes:
      message 6
      hash*message 138
      E(hash*message) 360438
   Client 2 computes:
      message 62
      hash*message 1426
      E(hash*message) 169093
   Client 3 computes:
      message 77
      hash*message 1771
      E(hash*message) 136368
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):3335
      D(share combine)*hash^(-1):145
   homomorphytest: 6 + 62 + 77=145=145 is TRUE

Timestamp : 5
   Client 1 computes:
      message 5
      hash*message 115
      E(hash*message) 68146
   Client 2 computes:
      message 9
      hash*message 207
      E(hash*message) 425041
   Client 3 computes:
      message 37
      hash*message 851
      E(hash*message) 101102
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):1173
      D(share combine)*hash^(-1):51
   homomorphytest: 5 + 9 + 37=51=51 is TRUE

Timestamp : 6
   Client 1 computes:
      message 66
      hash*message 1518
      E(hash*message) 247325
   Client 2 computes:
      message 30
      hash*message 690
      E(hash*message) 88705
   Client 3 computes:
      message 59
      hash*message 1357
      E(hash*message) 400940
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):3565
      D(share combine)*hash^(-1):155
   homomorphytest: 66 + 30 + 59=155=155 is TRUE

Timestamp : 7
   Client 1 computes:
      message 58
      hash*message 1334
      E(hash*message) 55287
   Client 2 computes:
      message 51
      hash*message 1173
      E(hash*message) 84393
   Client 3 computes:
      message 65
      hash*message 1495
      E(hash*message) 316702
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):4002
      D(share combine)*hash^(-1):174
   homomorphytest: 58 + 51 + 65=174=174 is TRUE

Timestamp : 8
   Client 1 computes:
      message 86
      hash*message 1978
      E(hash*message) 104875
   Client 2 computes:
      message 80
      hash*message 1840
      E(hash*message) 355125
   Client 3 computes:
      message 91
      hash*message 2093
      E(hash*message) 244168
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):5911
      D(share combine)*hash^(-1):257
   homomorphytest: 86 + 80 + 91=257=257 is TRUE

Timestamp : 9
   Client 1 computes:
      message 88
      hash*message 2024
      E(hash*message) 155849
   Client 2 computes:
      message 49
      hash*message 1127
      E(hash*message) 211289
   Client 3 computes:
      message 52
      hash*message 1196
      E(hash*message) 388543
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):4347
      D(share combine)*hash^(-1):189
   homomorphytest: 88 + 49 + 52=189=189 is TRUE

Timestamp : 10
   Client 1 computes:
      message 6
      hash*message 138
      E(hash*message) 360438
   Client 2 computes:
      message 20
      hash*message 460
      E(hash*message) 53208
   Client 3 computes:
      message 54
      hash*message 1242
      E(hash*message) 362440
   Transmission of encrypted messages to server
   Server computes:
      D(share combine):1840
      D(share combine)*hash^(-1):80
   homomorphytest: 6 + 20 + 54=80=80 is TRUE
 DONE

Package for reloading R-functions released

Please find a helpful R-package that eases reload of R scripts. Just download reload_1.0.tar.gz and run the following lines.

# Installation of reload
install.packages("reload_1.0.tar.gz", repos = NULL, type="source")
require("reload")

# now source some functions e.g.
source("http://www.thomas-liebig.eu/test.R")
# and reload it
reload()

You may also get a list of all functions in your workspace by entering desc(). Just try these lines:

test<-function(a,b){a+b}
desc()

You may also include it in your startup profile to allow seemless reloading of your scripts. Just edit the .Rprofile file as follows:

.First <- function(){
  require("reload")
}

Presentation at LBS 2014, Vienna

IMG_1751Recently, I presented an approach for privacy-preserving aggregation of distributed mobility streams at the symposium on location based services LBS2014 in Vienna.

  • T. Liebig, “Privacy Preserving Aggregation of Distributed Mobility Data Streams,” in Proceedings of the 11th Symposium on Location-Based Services, 2014, pp. 86-99.
    [Bibtex] [[PDF] Draft]
    @inproceedings{liebig14d,
    author={Liebig, Thomas},
    title={Privacy Preserving Aggregation of Distributed Mobility Data Streams},
    booktitle={Proceedings of the 11th Symposium on Location-Based Services},
    pages={86--99},
    year={2014}
    }

Presentation at IEEE Big Data

SAMSUNGI presented our roundtable architecture for the INSIGHT project  at the recent IEEE conference on Big Data. Great conference!

  • F. Schnitzler, T. Liebig, S. Mannor, G. Souto, S. Bothe, and H. Stange, “Heterogeneous Stream Processing for Disaster Detection and Alarming,” in IEEE International Conference on Big Data, 2014, pp. 914-923.
    [Bibtex] [[PDF] Draft]
    @inproceedings{schnitzler14b,
    title={Heterogeneous Stream Processing for Disaster Detection and Alarming},
    author={Fran\c{c}ois Schnitzler and Thomas Liebig and Shie Mannor and Gustavo Souto and Sebastian Bothe and Hendrik Stange},
    booktitle={IEEE International Conference on Big Data},
    pages={914--923},
    year={2014},
    publisher={IEEE Press}
    }

Presentations at Cologne and Athens

Thomas Liebig presents INSIGHT project at GeoDev Meetup Köln

Thomas Liebig presents INSIGHT project at GeoDev Meetup Köln (image: Bernd Weissner – esri)

Yesterday I went to the first GeoDev Meetup in Cologne and presented the European INSIGHT project to the regional geo developers. The other presentations were also interesting.

Last week I spent in Athens attending the International Conference on Extending Database Technology (EDBT) and the Workshop on Mining Urban Data. We also had a fruitful meeting with our collegues of the INSIGHT project.

Submission on TripPlanning accepted at MUD’14!

Our joint paper to the  Workshop on Mining Urban Data held at the International Conference on Extending Database Technology (EDBT) got accepted. It presents dynamic cost estimation for smart trip planning. Situation-aware trip planning is a major goal in the European INSIGHT project.

Abstract

Smart route planning gathers increasing interest as cities become crowded and jammed. We present a system for individual trip planning that incorporates future traffic hazards in routing. Future traffic conditions are computed by a Spatio-Temporal Random Field based on a stream of sensor readings. In addition, our approach estimates traffic flow in areas with low sensor coverage using a Gaussian Process Regression. The conditioning of spatial regression on intermediate predictions of a discrete probabilistic graphical model allows to incorporate historical data, streamed online data and a rich dependency structure at the same time. We demonstrate the system and test model assumptions with a real-world use-case from Dublin city, Ireland.

  • T. Liebig, N. Piatkowski, C. Bockermann, and K. Morik, “Predictive Trip Planning – Smart Routing in Smart Cities,” in Proceedings of the Workshops of the EDBT/ICDT 2014 Joint Conference (EDBT/ICDT 2014), Athens, Greece, March 28, 2014, 2014, pp. 331-338.
    [Bibtex] [[PDF] Draft]
    @inproceedings{liebig14,
    author = {Thomas Liebig and Nico Piatkowski and Christian Bockermann and Katharina Morik},
    title = {Predictive Trip Planning - Smart Routing in Smart Cities},
    booktitle = {Proceedings of the Workshops of the EDBT/ICDT 2014 Joint Conference (EDBT/ICDT 2014), Athens, Greece, March 28, 2014},
    year = {2014},
    publisher = {CEUR-WS.org},
    volume = {1133},
    pages = {331--338}
    }

Submission to EDBT’14 accepted!

Our joint paper to the International Conference on Extending Database Technology (EDBT) got accepted in the industrial track. It presents our first prototype of the European INSIGHT project.

Abstract

Urban traffic gathers increasing interest as cities become bigger, crowded and “smart”. We present a system for heterogeneous stream processing and crowdsourcing supporting intelligent urban traffic management. Complex events related to traffic congestion (trends) are detected from heterogeneous sources involving fixed sensors mounted on intersections and mobile sensors mounted on public transport vehicles. To deal with data veracity, a crowdsourcing component handles and resolves sensor disagreement. Furthermore, to deal with data sparsity, a traffic modelling component offers information in areas with low sensor coverage. We demonstrate the system with a real-world use-case from Dublin city, Ireland.

  • A. Artikis, M. Weidlich, F. Schnitzler, I. Boutsis, T. Liebig, N. Piatkowski, C. Bockermann, K. Morik, V. Kalogeraki, J. Marecek, A. Gal, S. Mannor, D. Gunopulos, and D. Kinane, “Heterogeneous Stream Processing and Crowdsourcing for Urban Traffic Management,” in Proc. 17th International Conference on Extending Database Technology (EDBT), Athens, Greece, March 24-28, 2014, 2014, pp. 712-723.
    [Bibtex] [[PDF] Draft]
    @inproceedings{artikis2014,
    author = {Alexander Artikis and Matthias Weidlich and Fran\c{c}ois Schnitzler and Ioannis Boutsis and Thomas Liebig and Nico Piatkowski and Christian Bockermann and Katharina Morik and Vana Kalogeraki and Jakub Marecek and Avigdor Gal and Shie Mannor and Dimitrios Gunopulos and Dermot Kinane},
    title = {Heterogeneous Stream Processing and Crowdsourcing for Urban Traffic Management},
    booktitle = {Proc. 17th International Conference on Extending Database Technology (EDBT), Athens, Greece, March 24-28, 2014},
    year = {2014},
    pages = {712--723},
    publisher = {OpenProceedings.org},
    }