T-Torch: pesquisando trajetórias de uma maneira rápida Sheng Wang, Zhifeng Bao, J. Shane Culpepper, Zizhe Xie, Qizhi Liu, Xiaolin Qin: Torch: A Search Engine for
Trajectory Data. SIGIR 2018: 535-544
O T-Torch é capaz de responder com eficiência a dois tipos típicos de consultas agora:
Nosso conjunto de dados de trajetória coletado no Porto está disponível. O conjunto de dados é correspondido e indexado. Faça o download em https://drive.google.com/open?id=110U9raqxhxws_tn0iji-a1n71elriybm e coloque-o no diretório raiz do projeto.
Gerenciamos as bibliotecas dependentes com o Maven. Você pode instalar facilmente os softwares necessários no arquivo pom.xml.
Fornecemos um caso de uso para consulta de caminho. O método principal () está na classe de teste.
1. Engine engine = Engine.getBuilder().build();
2. List<List<TrajEntry>> queries = read();
3. QueryResult result = engine.findOnPath(queries.get(0));
O T-Torch fornece um motor de classe de alto nível que contém APIs simples para o processamento de consultas.
QueryResult ret = engine.findInRange(50, 50, 50);
A consulta de alcance é usada para recuperar as trajetórias que passam por uma área retangular especificada. Para definir a área retangular, são necessários três argumentos. Latitude e longitude define o ponto médio, com raio (em metros) juntos representando a área retangular.
QueryResult ret = engine.findOnPath(query);
A consulta do caminho 2 é usada para recuperar as trajetórias com pelo menos uma borda comum com a consulta. O argumento é necessário é um "caminho" representado por uma lista de coordenadas .
QueryResult ret = engine.findOnStrictPath(query)
O rigoroso caminho da consulta 2 é usado para recuperar trajetórias que passam estritamente por toda a consulta do começo ao fim. O argumento é necessário é um "caminho" representado por uma lista de coordenadas .
QueryResult ret = engine.findTopK(query, 3);
A consulta Top-K retorna as trajetórias mais bem classificadas com base na medida de similaridade especificada. O primeiro argumento é uma "trajetória de consulta" representada por uma lista de coordenadas , e o segundo é o número de resultados principais a serem retornados.
if (ret.mappingSucceed){
List<Trajectory<TrajEntry>> l = ret.getResultTrajectory();
String mapVformat = ret.getMapVFormat();
}else{
//do something
}
Depois que a consulta é processada, o objeto de tipo que querido é retornado uniformemente. Ele contém a trajetória de consulta em forma bruta, a trajetória de consulta correspondente ao mapa e todas as trajetórias que estão sendo recuperadas. Além disso, você pode projetá -los no MAPV 3 para fins de visualização.
Se você deseja pesquisar seu próprio conjunto de dados, siga estas etapas para o pré -processamento de dados:
Faça o download dos dados do mapa do OpenStreetMap, onde os dados da trajetória são coletados, eles devem estar no formato *.osm.pbf e você precisa colocá -los no diretório de recursos.
Pré -processo seu conjunto de dados no formato suportado por nosso programa. A correspondência de mapas é a técnica para projetar trajetórias cruas na rede de estradas real. O primeiro argumento é o URI do conjunto de dados de trajetória bruta, enquanto o segundo argumento "Recursos/Porto.osm.pbf" deve ser o URI no seu arquivo PBF 1 após a configuração, o método Start () para converter trajetórias brutas em trajetórias mapeadas. Após o MapMatching, execute o programa Main () na classe Torch.base.db.dbmanager para criar índice invertido no disco. Por favor, tome nosso conjunto de dados Porto como exemplo.
MapMatching mm = MapMatching.getBuilder().build("Resources/porto_raw_trajectory.txt","Resources/porto.osm.pbf");
mm.start();
trajectoryID [[latitude1,longtitude1],[latitude2,longtitude2],...]
Se você usar este código para seu trabalho científico, cite -o como:
Sheng Wang, Zhifeng Bao, J. Shane Culpepper, Zizhe Xie, Qizhi Liu, Xiaolin Qin: Torch: A Search Engine for
Trajectory Data. SIGIR 2018: 535-544
@inproceedings{wang2018torch,
author = {{Wang}, Sheng and {Bao}, Zhifeng and {Culpepper}, J. Shane and {Xie}, Zizhe and {Liu}, Qizhi and {Qin}, Xiaolin},
title = "{Torch: {A} Search Engine for Trajectory Data}",
booktitle = {Proceedings of the 41th International ACM SIGIR Conference on Research & Development in Information Retrieval},
organization = {ACM},
pages = {535--544},
year = 2018,
}