Commit faeaeb2eaf97f41c0c5e20bb0a68c36d99891f6d
1 parent
3ecea359
Update Readme from one on my github as a base
Showing
1 changed file
with
63 additions
and
20 deletions
Show diff stats
README.md
1 | -# Programmation Avancée | 1 | +# Correcteur |
2 | 2 | ||
3 | -> Réalisation d’un correcteur orthographique | 3 | +Java project made during my second semester at the EPFL, Switzerland. This program renders images from OpenStreetMap and height maps data. |
4 | 4 | ||
5 | -## Objectif | 5 | +Example : HD Map of interlaken made using this program : |
6 | 6 | ||
7 | -L’objectif de ce projet est de réaliser un programme qui permet de détecter dans un texte tous les mots mal orthographiés. Pour cela on utilisera un dictionnaire qui sera construit à partir d’un texte ou d’un ensemble de mots de référence. | 7 | +![](https://github.com/Tywacol/EPFL_imhof/blob/master/examples_files/interlaken/interlakenhighHD300.png?raw=true) |
8 | 8 | ||
9 | -## Principe | 9 | +## How it works |
10 | 10 | ||
11 | -Afin de minimiser l’espace mémoire nécessaire au stockage du dictionnaire tout en fournissant un temps de recherche bas, la structure de données que vous utiliserez sera un arbre préfixe (encore appelé trie). Il s’agit d’une structure arborescente pour laquelle des mots ayant des préfixes communs sont factorisés: chaque noeud de l’arbre est une lettre qui peut être terminale (i.e. dernière lettre d’un mot) ou pas. | 11 | +The programs parses a compressed .osm file containing the maps elements (roads, building, lakes etc) so that its easily usable after. 2D map example from example_files/interlaken/interlaken.osm.gz : |
12 | 12 | ||
13 | -Considérons les mots: were et will. L’arbre (ou [trie](https://en.wikipedia.org/wiki/Trie) ) correspondant est affiché ci-dessous à gauche. Si on ajoute les mots `we`, `wet` et `weave` l’arbre est affiché à droite; les noeuds colorés représentant des lettres terminales. | 13 | +![](https://github.com/Tywacol/EPFL_imhof/blob/master/examples_files/interlaken/paintedMap.png?raw=true) |
14 | 14 | ||
15 | - ![](img/exemple_trie.png) | 15 | +It then create an height map using the data from the corresponding hgt file passed on argument. height map example from example_files/interlaken/N46E007.hgt : |
16 | 16 | ||
17 | -## Cahier des charges | 17 | +![](https://github.com/Tywacol/EPFL_imhof/blob/master/examples_files/interlaken/relief.png?raw=true) |
18 | 18 | ||
19 | -Le travail que vous devez réaliser est le suivant: | 19 | +It then mixes the two files to produce a map with relief, as seen in the presentation. |
20 | 20 | ||
21 | -- Définir et implémenter une structure de données permettant de stocker et de manipuler un dictionnaire sous forme d’arbre préfixe / trie. | ||
22 | -- Charger un dictionnaire à partir d’un fichier texte de données. Ce fichier texte pouvant être un texte court, un roman ou une liste de mots. Par exemple le fichier `/etc/dictionaries-common/words` est un dictionnaire de langue anglaise. | ||
23 | -- Analyser l’orthographe d’une phrase ou d’un texte en indiquant les nombres de mots qui ne sont pas reconnus par le dictionnaire. | 21 | +## Prequisite |
24 | 22 | ||
25 | -Vous accorderez un soin particulier à l’ergonomie de votre programme (choix du dictionnaire, choix du texte à analyser). | 23 | +This project require Oracle JDK8 or newer to be compiled. |
24 | +On Arch-based systems it can be installed by running | ||
25 | +```bash | ||
26 | +pacman -Syu jdk8-openjdk | ||
27 | +``` | ||
26 | 28 | ||
27 | -## Déliverables | 29 | +## Installation |
28 | 30 | ||
29 | -Pour le dimanche 5 mai 23:59 (CEST) vous devrez remettre à votre tuteur un accès à votre dépôt GIT qui contiendra: | ||
30 | -- un rapport de moins de 10 pages au format PDF contenant l’analyse de votre projet (structures de données, structuration de votre programme), les explications concernant les algorithmes principaux, le respect du cahier des charges et/ou les limitations de votre programme. | ||
31 | -- le code source de votre projet ainsi que le Makefile permettant de le compiler automatiquement. | ||
32 | -- un fichier README qui contiendra une description rapide de votre programme ainsi qu’un mode d’emploi. | ||
33 | -- des fichiers de tests éventuels | 31 | +You can clone the project with |
32 | +```bash | ||
33 | +git clone git@github.com:Tywacol/EPFL_imhof.git | ||
34 | +``` | ||
35 | +and compile it with | ||
36 | + | ||
37 | +```bash | ||
38 | +cd EPFL_imhof | ||
39 | +javac ch/epfl/imhof/Main.java | ||
40 | +``` | ||
41 | + | ||
42 | +## Usage | ||
43 | +Arguments | ||
44 | +```bash | ||
45 | +java Main osmFile.osm.gz, hgtFile.hgt, botLeftLon, botLeftLat, topRightLong, topRightLat, rDpi, output_name | ||
46 | +``` | ||
47 | +*osmFile.osm.gz* : the compressed data corresponding to the desired area. To create one go to <www.openstreetmap.org>, chose the location and the dimensions than click the export button. | ||
48 | + | ||
49 | +Note : since a single .hgt file can contains data for a square of 1 of longitude and 1 of lattitude, the latittude and longitude of the area you chosen must be contained within 1 of each other. Example: the coordinate for interlaken are | ||
50 | +7.7248 -> 7.994 in longitude and 46.6348 -> 46.7377 in latitude, it's in N46E007.hgt. Here 6.9999 -> 7.994 wouldn't work. | ||
51 | + | ||
52 | +To compress the file on linux, run : | ||
53 | + | ||
54 | +```bash | ||
55 | +gzip map.osm | ||
56 | +``` | ||
57 | +*hgtFile.hgt* : The hgt file can be downloaded from <http://viewfinderpanoramas.org/dem3.html>. Choose your regions than click on the interactive map to download the file. You may need to extract it. Note that there is 3 resolutions available : 1" 3" and 15" (arc second). the smaller, the better the details of the digital elevation model. 1" is not available everywhere but 3", however the use of 15" is discouraged due to the lack of precision. | ||
58 | + | ||
59 | +*botLeftLon, botLeftLat, topRightLong, topRightLat* : Coordinates of the bottom-left and top-right corner of the area inside of OSM file. | ||
60 | + | ||
61 | +*rDpi* : it's the dpi of the final map. More means better details but increasing file size and runtime. 100 produces mostly balanced results. | ||
62 | + | ||
63 | +*output_name* : the name of the file generated. | ||
64 | + | ||
65 | +As an example the command to generate the map of interlaken in examples_files/interlaken/command.txt is : | ||
66 | +```bash | ||
67 | +java -cp . ch.epfl.imhof.Main interlaken_high.osm.gz N46E007.hgt 7.7248 46.6348 7.9943 46.7377 300 interlakenhighHD300.png | ||
68 | +``` | ||
69 | + | ||
70 | +## Contributing | ||
71 | +Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. | ||
72 | + | ||
73 | +Please make sure to update tests as appropriate. | ||
74 | + | ||
75 | +## License | ||
76 | +[MIT](https://choosealicense.com/licenses/mit/) |