{"id":50350504,"url":"https://github.com/ZJU-DAILY/TrajEdge","last_synced_at":"2026-06-15T12:01:40.589Z","repository":{"id":250877011,"uuid":"835635621","full_name":"ZJU-DAILY/TrajEdge","owner":"ZJU-DAILY","description":"The source code for the paper \"TrajEdge: An Efficient and Lightweight Trajectory Data Analysis Framework in Edge Environment\".","archived":false,"fork":false,"pushed_at":"2024-11-28T16:48:55.000Z","size":19060,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-28T17:26:20.235Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZJU-DAILY.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-30T08:28:10.000Z","updated_at":"2024-11-28T16:49:01.000Z","dependencies_parsed_at":"2024-08-07T14:05:48.958Z","dependency_job_id":null,"html_url":"https://github.com/ZJU-DAILY/TrajEdge","commit_stats":null,"previous_names":["zju-daily/trajedge"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ZJU-DAILY/TrajEdge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-DAILY%2FTrajEdge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-DAILY%2FTrajEdge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-DAILY%2FTrajEdge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-DAILY%2FTrajEdge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZJU-DAILY","download_url":"https://codeload.github.com/ZJU-DAILY/TrajEdge/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-DAILY%2FTrajEdge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34361403,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-29T21:00:23.920Z","updated_at":"2026-06-15T12:01:40.584Z","avatar_url":"https://github.com/ZJU-DAILY.png","language":"Java","funding_links":[],"categories":["大数据"],"sub_categories":["微服务框架"],"readme":"# TrajEdge: An Efficient and Lightweight Trajectory Data Analysis Framework in Edge Environment\n\n## Introduction\n\nThis repository holds source code for the paper \"TrajEdge: An Efficient and Lightweight Trajectory Data Analysis Framework in Edge Environment\".\n\n![Overview](./Overview.png)\n\n## Environment Preparation\n\n- Java 11\n- Docker\n- Docker Compose\n- CentOS 7.0\n\nTo set a edge simulated environment, you need to install Docker first, then configure the docker cluster:\n\n```bash\ncd TrajEdge\ndocker-compose up -d \n```\n\nThen you will get a cluster of storm in docker container.\n\nNext you can use [tcconfig](https://tcconfig.readthedocs.io/en/latest/pages/usage/tcset/index.html#basic-usage) to set the network latency and bandwidth between docker container for better simulated the edge-to-edge and edge-to-cloud communication.\n\n```bash\ntcset eth0 --delay 100ms --rate 100Kbps --network 192.168.0.10\n```\n\nBTW, we also provide detailed scripts for configuring the network by running:\n\n```bash\nchmod +x ./scripts/configureNetwork.sh \u0026 ./scripts/configureNetwork.sh\n```\n\nLast, you need to run `python ./scripts/allocateNode.py` for mapping the external node into edge device.\n\n## Datasets Description\n\nWe use 2 publicly available real-world trajectory and road map data, which can be obtained from [Geolife](https://research.microsoft.com/en-us/projects), [T-Drive](http://www.geolink.pt/ecmlpkdd2015-challenge/dataset.html). And the synthetic dataset of Oldenburg can be generated in [LINK](https://research.microsoft.com/en-us/projects).\n\nDon't forget to upload your data to all docker container in cluster by using:\n\n```bash\nchmod +x ./scripts/copyData.sh \u0026 ./scripts/copyData.sh\n```\n\n## Usage\n\n1. Prepare your trajectory data like below:\n\n   ```\n   [Lat] [Lng] [TimeStamp]\n   ```\n\n   Each column is separated by a blank.\n\n2. Modify your data loader class in directory `Spout`\n\n3. Pack the project into fat jar `TrajEdge-storage.jar`  and  `TrajEdge-stream.jar` using Maven \n\n4. Set up the storage cluster of TrajEdge\n\n   ```bash\n   chmod +x ./scripts/deployStorage.sh \u0026 ./scripts/deployStorage.sh\n   ```\n\n5. Copy the jar to docker and run the topology `TrajectoryUploadTopology` to store trajectory data\n\n   ```bash\n   docker cp ./TrajEdge-stream/target/TrajEdge-stream-1.0-SNAPSHOT.jar nimbus:/opt/storm/lib/\n   \n   docker exec -it nimbus storm jar /opt/storm/lib/TrajEdge-stream-1.0-SNAPSHOT.jar org.example.TrajectoryUploadTopology test-1 true 1000\n   ```\n\n6. Run the query topology, including  `TrajectoryIdQueryTopology` , `TrajectorySpacialRangeQueryTopology`,  `TrajectoryTimeRangeQueryTopology` and `TrajectorykNNQueryTopology`.\n\n   ```bash\n   # ID temporal\n   docker exec -it nimbus storm jar /opt/storm/lib/TrajEdge-stream-1.0-SNAPSHOT.jar org.example.TrajectoryIdQueryTopology 1 0 8 geolife\n   # space range\n   docker exec -it nimbus storm jar /opt/storm/lib/TrajEdge-stream-1.0-SNAPSHOT.jar org.example.TrajectorySpacialRangeQueryTopology 1 true 1 geolife\n   # space time range\n   docker exec -it nimbus storm jar /opt/storm/lib/TrajEdge-stream-1.0-SNAPSHOT.jar org.example.TrajectorySpacialTemporalRangeQueryTopology 1 8 geolife\n   # k-nn\n   docker exec -it nimbus storm jar /opt/storm/lib/TrajEdge-stream-1.0-SNAPSHOT.jar org.example.TrajectorykNNQueryTopology 1 true 8 geolife 1\n   ```\n\n## Citation\n\nIf you use our code for research work, please cite our paper as below:\n\n```\n@article{,\n  title={TrajEdge: An Efficient and Lightweight Trajectory Data Analysis Framework in Edge Environment},\n  author={Changhao He, Ziquan Fang, Linsen Li, Yunjun Gao},\n  year={2025},\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FZJU-DAILY%2FTrajEdge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FZJU-DAILY%2FTrajEdge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FZJU-DAILY%2FTrajEdge/lists"}