Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

On computing temporal functions for a time-dependent networks using trajectory data (IDEAS) #21

Open
wants to merge 121 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
e006ad0
Adicionando artifato rcaller, para manipular as funções do R.
mirlabraga Nov 26, 2015
4d3822c
Criando estutura de classes para manipular dos entradas para a geraçã…
mirlabraga Nov 26, 2015
928b0c2
Manipulação como Banco de Dados. Consulta, aquivo de configuração e c…
mirlabraga Nov 26, 2015
beb8b0c
Gerado da função para cada aresta do grafo.
mirlabraga Nov 26, 2015
d1d7038
Classe com testes unitários para testes da biblioteca RCaller.
mirlabraga Nov 26, 2015
c3e3539
Criada primeira função após o uso do loess
mirlabraga Nov 26, 2015
3cea3f2
Removido teste unitário para outra classe.
mirlabraga Nov 26, 2015
43fd192
Finalizada função para o cálculo do tempo gasto para percorrer cada a…
mirlabraga Nov 26, 2015
a5272fd
Adicionado binário do R.
mirlabraga Nov 27, 2015
1f66faf
Add configure of the DB, with file properties, DAO and class java
mirlabraga Nov 30, 2015
da10bc5
Create importer of the OSM Fortaleza/Ce-Brazil and ploted taxi into g…
mirlabraga Nov 30, 2015
5d83a61
add postgis dependency and add configuration main class for service run.
mirlabraga Nov 30, 2015
2906f3e
Removed classes referente of the solution piecewise.
mirlabraga Nov 30, 2015
7c08382
Create classes with naive (Dijkstra) and
mirlabraga Nov 30, 2015
6f2840f
chance member level of the method
mirlabraga Nov 30, 2015
468a363
add util method double generatePdseurandom(int rangeMin, int rangeMax).
mirlabraga Nov 30, 2015
760435f
add util method boolean isPointInEdgeLine(GraphBounds graph, Node po…
mirlabraga Nov 30, 2015
4cf936a
set default value of category.
mirlabraga Nov 30, 2015
02d7d36
Added data collection in nanoseconds
mirlabraga Dec 4, 2015
6b464e8
Add test for verify cost edge
mirlabraga Dec 4, 2015
8f54628
NearestNeighbor nearestNeighbor = null;
mirlabraga Dec 4, 2015
d701d35
define node with taxi and fixed erro cost edge
mirlabraga Dec 4, 2015
a458dd4
alterado biblioteca que coloca log.
mirlabraga Dec 8, 2015
24ec194
add NumberVisitedNodes
mirlabraga Dec 8, 2015
9d44e92
add parameter of the number visited nodes
mirlabraga Dec 8, 2015
a134c34
add cost in the graph
mirlabraga Dec 8, 2015
4ac9faf
add parameter of the number visited nodes
mirlabraga Dec 8, 2015
d881d65
add parameter of the number visited nodes
mirlabraga Dec 8, 2015
a554c7f
create compare method synthetic analysis.
mirlabraga Dec 8, 2015
8f4a07d
add parameter of the number visited nodes
mirlabraga Dec 8, 2015
19989af
Milissegundo to Nanosegundos
mirlabraga Dec 8, 2015
3fb8eeb
add travel time.
mirlabraga Dec 8, 2015
3241e53
add travel time.
mirlabraga Dec 8, 2015
00fd97c
logger
mirlabraga Dec 15, 2015
8e3d433
Generalizado forma de passar o tamanho da rede. Por parametro.
mirlabraga Jan 15, 2016
e3e64fd
Alterado forma de capturar quantidade de nós visitados.
mirlabraga Jan 15, 2016
4cdb87e
refactorado nome de variavel
mirlabraga Jan 15, 2016
dfca468
adicionando parametro para captura consumo de memoria total.
mirlabraga Jan 15, 2016
68a79d8
Adicionada classe de Benchmark.
mirlabraga Jan 17, 2016
caaaecf
descoplando gerador de função do edge do graph e o engine
mirlabraga Jan 18, 2016
867bc19
desacoplando implementação de gerar a função para de uma aresta. Impl…
mirlabraga Jan 18, 2016
fca678f
Benchmark Memory.
mirlabraga Feb 4, 2016
70568cb
Parser json to DB com coordenadas configuradas para uma determinada E…
mirlabraga Mar 14, 2016
218c576
Insert values para piecewise table.
mirlabraga Mar 14, 2016
17c8691
Insert into para piecewise table.
mirlabraga Mar 14, 2016
ec13841
dependecy to json parser.
mirlabraga Mar 14, 2016
8e2dcdb
Atualização da função.
May 28, 2016
bed2d54
Retirado comentários.
May 28, 2016
041635b
Alteração da lib do Rcaller para utilizar maven.
mirlabraga May 31, 2016
34ed185
Adicionando artifato rcaller, para manipular as funções do R.
mirlabraga Nov 26, 2015
3979ce1
Criando estutura de classes para manipular dos entradas para a geraçã…
mirlabraga Nov 26, 2015
cdc71ad
Manipulação como Banco de Dados. Consulta, aquivo de configuração e c…
mirlabraga Nov 26, 2015
3a630c3
Gerado da função para cada aresta do grafo.
mirlabraga Nov 26, 2015
bce4f3d
Classe com testes unitários para testes da biblioteca RCaller.
mirlabraga Nov 26, 2015
26695f9
Criada primeira função após o uso do loess
mirlabraga Nov 26, 2015
ca60561
Removido teste unitário para outra classe.
mirlabraga Nov 26, 2015
fb5d3f7
Finalizada função para o cálculo do tempo gasto para percorrer cada a…
mirlabraga Nov 26, 2015
c131407
Adicionado binário do R.
mirlabraga Nov 27, 2015
7b3b4f2
Add configure of the DB, with file properties, DAO and class java
mirlabraga Nov 30, 2015
ed12bed
Create importer of the OSM Fortaleza/Ce-Brazil and ploted taxi into g…
mirlabraga Nov 30, 2015
4754268
add postgis dependency and add configuration main class for service run.
mirlabraga Nov 30, 2015
c7b2edb
Removed classes referente of the solution piecewise.
mirlabraga Nov 30, 2015
a48704c
Create classes with naive (Dijkstra) and
mirlabraga Nov 30, 2015
137615b
chance member level of the method
mirlabraga Nov 30, 2015
7c2201b
add util method double generatePdseurandom(int rangeMin, int rangeMax).
mirlabraga Nov 30, 2015
a422468
add util method boolean isPointInEdgeLine(GraphBounds graph, Node po…
mirlabraga Nov 30, 2015
72549b3
set default value of category.
mirlabraga Nov 30, 2015
ecb98da
Added data collection in nanoseconds
mirlabraga Dec 4, 2015
d3effc0
Add test for verify cost edge
mirlabraga Dec 4, 2015
bdbf4ee
NearestNeighbor nearestNeighbor = null;
mirlabraga Dec 4, 2015
d59a922
define node with taxi and fixed erro cost edge
mirlabraga Dec 4, 2015
5ecda12
alterado biblioteca que coloca log.
mirlabraga Dec 8, 2015
d736dca
add NumberVisitedNodes
mirlabraga Dec 8, 2015
0d37048
add parameter of the number visited nodes
mirlabraga Dec 8, 2015
e0318a0
add cost in the graph
mirlabraga Dec 8, 2015
8694d97
add parameter of the number visited nodes
mirlabraga Dec 8, 2015
569b9f3
add parameter of the number visited nodes
mirlabraga Dec 8, 2015
e259917
create compare method synthetic analysis.
mirlabraga Dec 8, 2015
30caf61
add parameter of the number visited nodes
mirlabraga Dec 8, 2015
d226e52
Milissegundo to Nanosegundos
mirlabraga Dec 8, 2015
f037ac9
add travel time.
mirlabraga Dec 8, 2015
a3e723a
add travel time.
mirlabraga Dec 8, 2015
09bf2fa
logger
mirlabraga Dec 15, 2015
31da478
Generalizado forma de passar o tamanho da rede. Por parametro.
mirlabraga Jan 15, 2016
f64919b
Alterado forma de capturar quantidade de nós visitados.
mirlabraga Jan 15, 2016
240ff52
refactorado nome de variavel
mirlabraga Jan 15, 2016
26da704
adicionando parametro para captura consumo de memoria total.
mirlabraga Jan 15, 2016
294e609
Adicionada classe de Benchmark.
mirlabraga Jan 17, 2016
c4c5538
Benchmark Memory.
mirlabraga Feb 4, 2016
fbe8d5d
Retirado comentários.
May 28, 2016
e1a1ebb
Alterado GraphBoundsImpl para GraphImpl
mirlabraga May 31, 2016
51514db
descoplando gerador de função do edge do graph e o engine
mirlabraga Jan 18, 2016
74dc51a
desacoplando implementação de gerar a função para de uma aresta. Impl…
mirlabraga Jan 18, 2016
874503a
Parser json to DB com coordenadas configuradas para uma determinada E…
mirlabraga Mar 14, 2016
b19fff5
Insert values para piecewise table.
mirlabraga Mar 14, 2016
532458c
Insert into para piecewise table.
mirlabraga Mar 14, 2016
2f4346a
dependecy to json parser.
mirlabraga Mar 14, 2016
a8d5e44
Correçoes após pull request.
mirlabraga May 31, 2016
a0d6797
correções
mirlabraga May 31, 2016
8468c22
Merge branch 'piecewise' of https://github.com/mirlabraga/graphast.git
mirlabraga May 31, 2016
72fc90b
Merge branch 'master' of https://github.com/mirlabraga/graphast into …
mirlabraga May 31, 2016
f148dd2
Ocultando informações do bando de dados.
mirlabraga Jun 2, 2016
ddfc960
Removido arquivo de propriedades.
mirlabraga Jun 4, 2016
c7c0db6
descoplando gerador de função do edge do graph e o engine
mirlabraga Jan 18, 2016
b31d876
desacoplando implementação de gerar a função para de uma aresta. Impl…
mirlabraga Jan 18, 2016
46f5b7a
Parser json to DB com coordenadas configuradas para uma determinada E…
mirlabraga Mar 14, 2016
a35b0dc
Insert values para piecewise table.
mirlabraga Mar 14, 2016
ffb79cb
Insert into para piecewise table.
mirlabraga Mar 14, 2016
082d7b3
dependecy to json parser.
mirlabraga Mar 14, 2016
e88ffe2
Atualização da função.
May 28, 2016
04ea7f2
Alteração da lib do Rcaller para utilizar maven.
mirlabraga May 31, 2016
8311e09
descoplando gerador de função do edge do graph e o engine
mirlabraga Jan 18, 2016
00286d5
desacoplando implementação de gerar a função para de uma aresta. Impl…
mirlabraga Jan 18, 2016
e064987
Parser json to DB com coordenadas configuradas para uma determinada E…
mirlabraga Mar 14, 2016
f152694
Insert values para piecewise table.
mirlabraga Mar 14, 2016
91521da
Insert into para piecewise table.
mirlabraga Mar 14, 2016
6386ba7
dependecy to json parser.
mirlabraga Mar 14, 2016
40ec305
Correçoes após pull request.
mirlabraga May 31, 2016
d391ad8
correções
mirlabraga May 31, 2016
f15f99f
Correções do merge.
mirlabraga Jun 4, 2016
b78a0a5
finalizando merge
mirlabraga Jun 4, 2016
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@ null
*.aux
*.synctex*
bin
core/.RData
11 changes: 11 additions & 0 deletions core/db.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# remoto - nuvem arida
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mirla, acho que este arquivo não deveria ser enviado por ter dados sensíveis e bem específicos do banco.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concordo. Arquivo removido.

driver=org.postgresql.Driver
host=jdbc:postgresql://177.130.199.157:8080/fortaleza
user=postgres
password=aridapostgres12

#local
#driver=org.postgresql.Driver
#host=jdbc:postgresql://localhost:5432/fortaleza_novo
#user=postgres
#password=postgres
109 changes: 79 additions & 30 deletions core/pom.xml
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -15,29 +15,29 @@
<url>http://arida.github.io/maven-repo/</url>
</repository>
</repositories>

<licenses>
<license>
<name>GNU Lesser General Public License (LGPL), Version 2.1</name>
<url>http://www.fsf.org/licensing/licenses/lgpl.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<license>
<name>GNU Lesser General Public License (LGPL), Version 2.1</name>
<url>http://www.fsf.org/licensing/licenses/lgpl.txt</url>
<distribution>repo</distribution>
</license>
</licenses>

<scm>
<connection>scm:git:git://github.com/ARiDa/graphast.git</connection>
<url>https://github.com/ARiDa/graphast.git</url>
<developerConnection>https://github.com/ARiDa/graphast.git</developerConnection>
<connection>scm:git:git://github.com/ARiDa/graphast.git</connection>
<url>https://github.com/ARiDa/graphast.git</url>
<developerConnection>https://github.com/ARiDa/graphast.git</developerConnection>
</scm>

<developers>
<developer>
<id>graphast</id>
<name>Graphast</name>
</developer>
</developer>
</developers>
<properties>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

Expand Down Expand Up @@ -71,15 +71,57 @@
<artifactId>osmpoispbf</artifactId>
<version>1.1</version>
</dependency>

<dependency>
<groupId>com.github.davidmoten</groupId>
<artifactId>rtree</artifactId>
<version>0.7.1</version>
</dependency>
</dependencies>

<dependency>
<groupId>com.github.jbytecode</groupId>
<artifactId>RCaller</artifactId>
<version>2.8</version>
</dependency>

<dependency>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dependencia RCaller aparece 2 vezes.
Em que ela é usada?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

API necessária para executar comandos do R no Java.

<groupId>com.github.jbytecode</groupId>
<artifactId>RCaller</artifactId>
<version>2.8</version>
</dependency>

<dependency>
<groupId>postgresql</groupId>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

evitar a dependencia do postgres

<artifactId>postgresql</artifactId>
<version>9.1-901-1.jdbc4</version>
</dependency>

<dependency>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

evitar a dependencia do postgres

<groupId>org.postgis</groupId>
<artifactId>postgis-jdbc</artifactId>
<version>1.3.3</version>
</dependency>

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>

<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160212</version>
</dependency>

<!-- http://mvnrepository.com/artifact/com.github.jbytecode/RCaller -->
<dependency>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Novamente o RCaller.

<groupId>com.github.jbytecode</groupId>
<artifactId>RCaller</artifactId>
<version>2.8</version>
</dependency>

</dependencies>

<build>
<plugins>
Expand Down Expand Up @@ -126,21 +168,28 @@
</execution>
</executions>
</plugin>

<!--
<plugin>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
-->

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>org.graphast.query.rnn.CompareRNNSearchsMethodsAnalysis</mainClass>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

qual a finalidade do shade?
não entendi.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isso foi necessário para executar a Classe Main através do Maven. Uma vez a classe de analise ficando no Core devemos utilizar essa configuração para executa-la.

</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>

</plugins>
</build>
</project>
219 changes: 115 additions & 104 deletions core/src/main/java/org/graphast/importer/CostGenerator.java
Original file line number Diff line number Diff line change
@@ -1,105 +1,116 @@
package org.graphast.importer;

import java.util.Random;

import org.graphast.model.Graph;

public class CostGenerator {

public static int[] generateSyntheticEdgesCosts(int distance) {

Random random = new Random();

int minSpeed, maxSpeed;
int[] syntheticCosts = new int[96];

for(int i=0; i<24; i++) {
minSpeed = 14;
maxSpeed = 17;

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

for(int i=24; i<28; i++) {
minSpeed = 6;
maxSpeed = 9;

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

for(int i=28; i<36; i++) {
minSpeed = 1;
maxSpeed = 4;

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

for(int i=36; i<44; i++) {
minSpeed = 6;
maxSpeed = 9;

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

for(int i=44; i<56; i++) {
minSpeed = 1;
maxSpeed = 4;

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

for(int i=56; i<64; i++) {
minSpeed = 14;
maxSpeed = 17;

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

for(int i=64; i<68; i++) {
minSpeed = 6;
maxSpeed = 9;

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

for(int i=68; i<80; i++) {
minSpeed = 1;
maxSpeed = 4;

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

for(int i=80; i<88; i++) {
minSpeed = 6;
maxSpeed = 9;

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

for(int i=88; i<96; i++) {
minSpeed = 14;
maxSpeed = 17;

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

return syntheticCosts;
}

public static void generateAllSyntheticEdgesCosts(Graph graph) {
for (int i = 0; i < graph.getNumberOfEdges(); i++) {
graph.setEdgeCosts(i, CostGenerator.generateSyntheticEdgesCosts(graph.getEdge(i).getDistance()));
}
}

package org.graphast.importer;

import java.util.Random;

import org.graphast.model.Graph;


public class CostGenerator {

public static int[] generateSyntheticEdgesCosts(int distance) {

Random random = new Random();

int minSpeed, maxSpeed; //Millimeters Per Millisecond (mm/ms)
int[] syntheticCosts = new int[96];

//1:00h to 6:00h
for(int i=0; i<24; i++) {
minSpeed = 14; // 50km/h
maxSpeed = 17; // 60km/h

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

//6:00h to 7:00h
for(int i=24; i<28; i++) {
minSpeed = 6; //21km/h
maxSpeed = 9; //32km/h

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

//7:00h to 9:00h
for(int i=28; i<36; i++) {
minSpeed = 1; //3km/h
maxSpeed = 4; //14km/h

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

//9:00h to 11:00h
for(int i=36; i<44; i++) {
minSpeed = 6; //21km/h
maxSpeed = 9; //32km/h

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

//11:00h to 14:00h
for(int i=44; i<56; i++) {
minSpeed = 1; //3km/h
maxSpeed = 4; //14km/h

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

//14:00h to 16:00h
for(int i=56; i<64; i++) {
minSpeed = 14; //50km/h
maxSpeed = 17; //60km/h

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

//16:00h to 17:00h
for(int i=64; i<68; i++) {
minSpeed = 6; //21km/h
maxSpeed = 9; //30/km/h

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

//17:00h to 20:00h
for(int i=68; i<80; i++) {
minSpeed = 1; //3km/h
maxSpeed = 4; //14km/h

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

//20:00h to 22:00h
for(int i=80; i<88; i++) {
minSpeed = 6; //21km/h
maxSpeed = 9; //30/km/h

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

//22:00h to 00:00h
for(int i=88; i<96; i++) {
minSpeed = 14; //50km/h
maxSpeed = 17; //60km/h

syntheticCosts[i] = distance/(random.nextInt(maxSpeed-minSpeed)+minSpeed);

}

return syntheticCosts;
}

public static void generateAllSyntheticEdgesCosts(Graph graph) {
for (int i = 0; i < graph.getNumberOfEdges(); i++) {
graph.setEdgeCosts(i, CostGenerator.generateSyntheticEdgesCosts(graph.getEdge(i).getDistance()));
}
}

}
Loading