thomas-siozos / Evaluation-Searching-Spatial-Data

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Evaluation-Searching-Spatial-Data

Στόχος του project είναι να δημιουργήσει ένα χωρικό ευρετήριο βασισμένο σε σχάρα (grid) και στην συνέχεια να χρησιμοποιέι το ευρετήριο για να αποτιμά:

  • Ερωτήματα επιλογής παραθύρου.
  • Ερωτήματα πλησιέστερου γείτονα.

Data

Το δεδομένα βρίσκονται στο αρχείο Beijing_restaurants.txt. Περιέχει συντεταγμένες από 51970 σημεία τα οποία είναι θέσεις εστιατορίων στο Πεκίνο. Η πρώτη γραμμή περιέχει το πλήθος των σημείων και οι υπόλοιπες τις συντεταγμένες x και y.

Running the project

Στην αρχή τρέχουμε το αρχείο "index_creating.py" το οποίο δίνει έναν identifier που αντιστοιχεί σε κάθε σημείο ανάλογα με την γραμμή που βρίσκεται. Κατόπιν, σε κάθε συντεταγμένη χωρίζεται το εύρος τιμών σε 10 ίσα διαστήματα τιμών και ταξινομούνται τα σημεία με βάση το κελί στο οποίο βρίσκονται και γράφονται στο αρχείο "grid.grd". Δηλαδή, όλα τα σημεία του (0,0) βρίσκονται πριν από τα σημεία του (0,1). Παράλληλα, δημιουργείται ένα αρχείο "grid.dir" που περιέχει στην πρώτη τις ελάχιστες και μέγιστες τιμές κάθε άξονα. Στις υπόλοιπες γραμμές τον identifier που ξεκινάει κάθε κελί της σχάρας και το πλήθος των σημείων σε αυτό το κελί.
Στην συνέχεια ανάλογα τι ερωτήματα θέλουμε να αποτιμήσουμε διαλέγουμε το αρχείο "selection_queries.py" ή "nn_search.py" για ερωτήματα επιλογής παραθύρου ή ερωτήματα πλησιέστερου γείτονα αντίστοιχα.
Στο αρχείο "selection_queries.py" βάζουμε command-line arguments το πάνω και το κάτω όριο του παραθύρου σε κάθε διάσταση, δηλ. τις τιμές <x_low> <x_high> <y_low> <y_high>. Υπολογίζει και γράφει στο αρχείο εξόδου "window.txt" τα σημεία που ανήκουν στο παράθυρο που δόθηκε.
Στο αρχείο "nn_search.py" βάζουμε command-line arguments έναν αριθμό k και τις δύο συντεταγμένες ενός σημείου q του οποίου τυπώνει τα k πλησιέστερα εστιατόρια. Οι πλησιέστεροι γείτονες γράφονται σε αρχείο εξόδου "knearest_points.txt". Και τα δύο αρχεία χρησιμοποιούν τα αρχεία που φτιάχτηκαν από το αρχείο "index_creating.py", δηλαδή την σχάρα(grid).

Output File

Αποτέλεσμα από ερώτημα επιλογής παραθύρου(10 πρώτα σημεία)
Alt Text

Αποτέλεσμα από ερώτημα 100 πλησιέστερων γειτόνων(10 πρώτα σημεία)
Alt Text

Copyright

MIT © 2020 Thomas Siozos

About

License:MIT License


Languages

Language:Python 100.0%