Commit faeaeb2eaf97f41c0c5e20bb0a68c36d99891f6d

Authored by ccalleri
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
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/)