asciimap 1.0.0

Creator: coderz1093

Last updated:

Add to Cart

Description:

asciimap 1.0.0

db .M"""bgd .g8"""bgd `7MMF'`7MMF' `7MMM. ,MMF'
;MM: ,MI "Y .dP' `M MM MM MMMb dPMM
,V^MM. `MMb. dM' ` MM MM M YM ,M MM ,6"Yb. `7MMpdMAo.
,M `MM `YMMNq. MM MM MM M Mb M' MM 8) MM MM `Wb
AbmmmqMA . `MM MM. MM MM M YM.P' MM ,pm9MM MM M8
A' VML Mb dM `Mb. ,' MM MM M `YM' MM 8M MM MM ,AP
.AMA. .AMMA.P"Ybmmd" `"bmmmd' .JMML..JMML. .JML. `' .JMML.`Moo9^Yo. MMbmmd'
MM
.JMML.

Terminal application to print countries to console in ASCII Art














·-----·
/...../
´...../
|....| ,---·
|.....--....|
´............·
·.........../
`........./
|.......|
|,.......--·
· |.........·
|..........·
·--· ·-.........|
|..-· `--.......·
|...| `.......--·
·----· `......-.·
United Kingdom
·.....-..·
·-----..........·
|................·
·.................---·
|...................|
/...................,·
·-...................|
`-..................·
|................,·
,-....,....,------´
/....,´ `--´
·-----´
··


You can print any country with asciimap for which a Geometry exists (currently
177 countries).
Dependencies
For asciimap to work you need the python bindings for GDAL and GDAL itself
installed. I experienced problems installing the python bindings into a
virtualenv, so I recommend installing the system packages.
Arch
pacman -Sy gdal python-gdal

Debian/Ubuntu
apt-get update
apt-get install gdal-bin libgdal-dev python3-gdal

Installation
PyPi
Installation with pip is straightforward:
sudo pip install asciimap

Git
Installation with git from master branch:
git clone git@github.com:MaelStor/asciimap.git
cd asciimap
git checkout master

In userspace
Install in user space with:
pip install --user .

System
Install system wide with:
sudo pip install .

Usage
usage: asciimap [-h] [--fill FILL] [--empty EMPTY] [--outside OUTSIDE]
[--height HEIGHT] [--width WIDTH] [--blur BLUR]
[--method {full,f,dynamic,d,height,h,width,w}]
[--surface SURFACE] [--negative] [--benchmark] [--stats]
country

Print countries in ASCII Art

positional arguments:
country Select country by ISO 3166-1 alpha-2 codes. For a
complete list of ISO A2 codes use 'list' as argument

optional arguments:
-h, --help show this help message and exit
--fill FILL, -f FILL Single character marking the edges of the land surface
--empty EMPTY, -e EMPTY
The character to use for the land surface
--outside OUTSIDE, -o OUTSIDE
Single character marking the outside surface
--height HEIGHT, -i HEIGHT
Height of the map as integer
--width WIDTH, -w WIDTH
Width of the map as integer
--blur BLUR, -b BLUR Add blur to radius and inflate the surface by double
value
--method {full,f,dynamic,d,height,h,width,w}, -m {full,f,dynamic,d,height,h,width,w}
Change rendering method
--surface SURFACE, -s SURFACE
Choose a surface by number or 'all'
--negative, -n Print the negative
--benchmark, -t Print execution times of methods along with the map.
Can be give multiple times to increase verbosity.
--stats, -x Print statistics

List all countries and ISO 3166-1 alpha-2 codes with 'list'

Examples
$ asciimap it

·-·
·---...·
|.......----·
,----............|
· ,---...............,-|
·----.................,´ ·
|.................../
|..................|
·...................|
|......,...........|
·-...,´ `-..........·
|./ `-........|
·´ `........-·
|.........-·
|..........|
·...........·
`....Italy..·
`...........·
`-..........·
`..........-·
`-..........---·
`--.........|
`-........--·
,· `-.........-·
·-..· `-........--·
|....· `....../ `--·
|....· `..../ `-·
|...| `..|
|...| `..·
·..,· |..-·
`´ |../
|./
|/
´|
·-· ,---· ··
|..---....·
·--......|
`---..|
`-|
·

$ asciimap no

·-----· ·----·
,-· ,---· |,----------·
·-...---.....---/
`-..........,´
`-......,´ ·--·
`-...| `·
`--·










,--------·
,· ,-...,----..·
·-----.`....| `--·
Norway../ `-----·
·-· ·´
,-/
,-./
/../
/../
/../
,-..|
/..,-·
,-..|
,-....·
,--.....|
,-........|
·...........·
|...........|
|...........|
·...........·
|......,--´
·....,´
·--·

You can print a country with the negative filter:
$ asciimap --surface 1 fr --negative

.........................................··.....................................
....................................... ....................................
....................................... .................................
...................................... ................................
...................................... ..............................
................................... . ..........................
....................... ........ ........................
....................... ... ......................
........................ ...................
........................ .............
............... ..... ............
...........· .............
...........| .............
...........| ..............
...........· ..............
............... ..............
................... . ...............
.................... .................
...................... ...................
....................... ....................
........................ France .....................
......................... .....................
.......................... ..................
.......................... .................
.......................... .................
.......................... .................
.......................... ................
.......................... .................
.......................... .................
.......................... .................
.......................... .................
.......................... ................
......................... ..............
......................... ..............
........................ ...............
........................ .... .................
......................... .................................
............................ ..................................
................................ .. ..................................
.......................................·----·...................................

or if you want the borders to be shown:
$ asciimap --surface 1 --outside '.' fr

.........................................··.....................................
.......................................·- ·....................................
.......................................| --·.................................
......................................´ ·................................
......................................| -·..............................
...................................,-- ·.,·..........................
.......................·........,-- ` -·........................
.......................·-·...,-- -·......................
........................| --- --·...................
........................| -----·.............
...............,--·.....| ·............
...........·--- ----- |.............
...........| ·.............
...........| |..............
...........·--- |..............
...............`--- , ·..............
...................` |.\´...............
....................`- -·.................
......................` /...................
.......................` /....................
........................` France |.....................
.........................` |.....................
..........................| --·..................
..........................| ·.................
..........................| |.................
..........................| |.................
..........................| ·................
..........................| |.................
..........................| |.................
..........................| |.................
..........................| |.................
..........................| ·................
.........................´ -·..............
.........................| ·..............
........................´ ,--- ,´...............
........................· ,--´....`------´.................
.........................`-- /.................................
............................`--- ,- |..................................
................................`´..`-- ·..................................
.......................................·----·...................................

Fillings can be combined. If you want to fill the land surface with .,
everything outside the land surface with ~ and corners with ^ use:
$ asciimap nz --outside '~' --empty '.' --fill '^'

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~··~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·.-·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`..·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`.|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`.·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|·~·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·.\~·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|.`|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|...·~~~~~··~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|....---·~||~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|........`.|~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|..........·~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/........,-´~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·-......../~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·-.......|~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`-.....|~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|....·~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|...|~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·~~~~~~~|...·~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·-.·~~·~~´.../~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|..·~··~~·..·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/..New Zealand~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~´.......·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|....../~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/....../~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/....../~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/......|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-.......|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-.......,-·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~,-.......,´~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~,-........|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~/..........·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~,-..........|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~´............·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~|...........|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~·...........,·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~·----.....,´~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~·---·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Advanced usage
An example with 'paste' and boasted usage of 'blur':
$ asciimap -b 0 jp -i 30 -w 30 | paste - <(asciimap -b 2.0 jp -i 30 -w 30)

· ·-·
|· ´...-·
|.-· · |.....---·
/....--· /.........|
,-.,...,´ /...........·
´../ `./ ´............|
·-´ · |............|
|............·
·-· |..........,´
|.| |........,´
|.| |.......|
|.| |.......|
´..· ,--........·
·.· ·-..........|
Japan |...Japan...·
·....· ,----...........|
,--....| /................|
´.......| ,-.................|
,-· |.......· /...................·
,--..--..,----´ /.................../
/-.,.| |./ ·.................../
,-/ | \· ·´ |..............,---´
/.| |· ·............./
·-..· · |........,--´
|| ·......,´
|· |..../
· ·-../




$ asciimap au --blur 0.1 --empty '.' --method full

··
,-· ||
,---...-----· ´..·
/..........| |..|
,---· /...........| |...·
/.....---............| |....--·
/......................--· ´.......|
·· /..........................--· |........·
|.`..............................----.........|
/..............................................|
/................................................-·
,----...................................................--·
,-----...........................................................·
,-..................................................................·
·-.....................................................................-·
|........................................................................·
·..........................................................................-·
|,..........................................................................·
·| |......................................Australia...........................·
|`...........................................................................|
·............................................................................|
`............................................................................·
|...........................................................................·
·..........................................................................|
`...........................,---..........................................|
|...................,-----´ `----.....................................·
|................,-´ `......,...........................,´
/........,-------´ `...,´ |........................./
·--....,-´ `-´ /-......................../
`--´ ·· `....................../
`....................|
`...................|
`--......,.....,---·
`----´ `---´


·· ,-·
|---..·
·...,´
·-·

Sometimes a country has more than one land surface (or more precise: Polygons)
defined, what warps or shows just a few pixels for the surface of interest
when printing all surfaces together:
$ asciimap --surface all --method full ru --fill "'"

· ·
·
·


· ,-..· ·
· /....|
· ´.....| ·
· |......---· |
· | |.........| |·
· | ´...........--..-·
· · |................| ·
·· · |.................--· ·
· ·\ ·--.· |....................`|
· · |...| |.....................|
· · ·-.....`......................|
· | |............................|
|--.............................|
|...........................,-..·
|.............Russia.......| |/
´...........................· ·
|........................,-´
|.......................| ·
|.......................| |
·-......................· |
|......,.............| |
· ´....../ |,...........| |
|.....| · |........,..· ·
·...,.· ·....,...| |.|
|.| · `.,| |..| |.|
·.· | · ·.,· |.|
| · · ·.|
| `|
|· |
·.| |
· |· ·
· | ·
·· ·

·

To overcome the bias you can just render the big land surface for example with:
$ asciimap --surface 1 --method height ru --fill "'"

·-·
,---...--------·
,---------.............,--·
,---......................|
·-----...........................--· ,---· ,·
,--· · |,..................................`.....-----..---· ·--·
/..| ´| ,---| |.................................................| |...------·
·-....· |.`.....`...................................................--· ,-------...........---· ,---·
`....| ·..............................................................`.......................`.....· ··
·-------· ,---· \...| |............................................................................................---------· |.-------·
|.......---· ·-· ,--· ,-----.....--· |..-· |......................................................................................................--.........|
·....,--....· `| ,--....`..............`..| /..................................................................................................................|
|..| `--´ ,· |---.........................| /...................................................................................................................|
|...· ·-..`..............................`...................................................................................................................,·
|...| ,--......................................................................................................................................................|
·....---..........................................................................................................................................................·
|...........................................................................................................................................,...,-...........,----·
/..........................................................................Russia.........................................................,-´ |,´ |.......,-´
·-........................................................................................................................................,´ · ·-.,-----´
|...........................................................................................................................,---------../ ·---´
·-..........................................................................................................................,´ `´ /./
·.........................................................................................................................,´ ,-.|
|......................................................................................................................./ ·-....-·
·--..........................................,........................................................................,´ |.....,·
|.....................................,--´ `......,...............................................................| ·...../
·-...............................,---´ `----´ |...............................................................· |.../
|.............................| ·..............................................,-----............---· |../
·--..................,-........| `.....................,......................| `...............· |./
`...............,´ `------.· `----.........,...../ `--...................· |.............| ·´
`---.........,´ · `-....,-´ `---| `-----......,-.,../ ·.............|
`......./ `--´ · `----´ · `´ `--..........|
|.....| |..,-.....·
|......· ·-´ |.../
/........· ´.../
/.........-· |../
·-........./ · /../
`--.....| |`../
`----.· ·--´
`-\
·

or
$ asciimap --surface 1 --method width --height 20 ru --fill "'"

·-·
,-------...-·
· ,--.............--------·
´.· ·--.........................· ,---------·
·--· ,· |.| |............................`...........-------· ,---·
|..--· · ,------..`..| |................................................`....|
·.| ·-.`.............`......................................................·
|.---.............................................................,..,....,-´
/...................................Russia.....................,../ `| `--´
·..........................................................,---´ `´ |
·-.......................................................,´ ,-|
|...............,-----.,..............................| ´..·
·-............./ · `..........,...........,--.....· ·./
`-....,-----´ `--...,-.| `---...,../ `.....-· ·
`..| `-´ `· `-´ `´ `.,..|
|.| · |.·
´...· |/
·--´ ·-·
·


To find the right surface you have to try around a bit. I'm working on a
better solution.
Performance
Rendering and printing time depends on the size of the resulting map. Rendering
and printing a country with 40x80 (h x w) usually takes about 0.1 - 0.3
seconds on a 2-core system. Rendering is implemented to use parallel processes
and reduces computation time on multicore systems. To use the inbuild benchmark
system you need 'yappi' installed. This is not a hard dependency as it is only
used for development. Print 'yappi' results for example with
$ asciimap de --benchmark

Statistics
The configuration and statistics are shown with --stats (or -x) along the
resulting map and benchmarking results.
$ asciimap ca -x

·----------------·
,-------...........,-´
·---.| |.....,---´
`-..--· ,-.....|
·· ·· `´ |`....,--·
·-· ·-----´
·· ·--· ,· ·--· ··
·--· · ·-· |---------·
,-----· |.--´
·..../ |-· · · ,· · ·-· || ·--· ,--·
`--´ ·.,--.--.`..· ·-· || ·...`....----·
· |.......· /-.· `--...,----..----·
·· ,--------· ,-· ·------....-· ·--/ |.-· |.| `--....-·
|.---..........`...---.| |..| || |...-· |..· `....|
|.......................-----....-----..--......· `--· · |...---·
|................................................· /...| `-·
|.............................................,-´ ·· ·----....·
|...........................................,´ ·-· ,· `-...-·
|..........................................· ·· `-´ ·
|.....................................Canada · ·---·
·-..,....................................· |....--·
`´ `-..................................| |......| ,·
`..................................· ·.......· /..·
`..................................· |.......`....·
`..................................---· |............|
|.....................................----· /..............-·
· ·.........................................| ´.................-·
`.........................................· |...................·
\.........................................· |.................,-|
· |,........................................`...........,--.,-´ |
· |,---------------------------.....................,| · /|
· `-----............../ ·-· ·----·
`-...........| || ·
`..........· ·-· · ·
|....,---´ ·-·
|..,´ ·
·-´



MapConfig
max_height: 40
height: None
max_width: 80
width: None
fill_char: '*'
no_char: '.'
outside_char: ' '
blur: 0.0
method: 'dynamic'
surface: 'all'
is_negative: False
PrinterConfig
fill_char: '*'
no_char: '.'
outside_char: ' '
is_negative: False
is_unicode: False
padding: (1, 0, 1, 0)
max_width: 80
max_height: 40
RenderConfig
name: 'Canada'
geom: >
centroid: (-98.14238137209722, 61.46907614534891)
lowest_lon: -140.99778
lowest_lat: 41.675105088867326
highest_lon: -52.64809872090421
highest_lat: 83.23324
lat_diff: 41.55813491113267
lon_diff: 88.34968127909579
worker_count: 4
h_res: 1.1043710159886975
w_res: 1.1043710159886975
max_height: 38
max_width: 80

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.