Skip to content

Instantly share code, notes, and snippets.

@elbosso
Last active July 26, 2018 16:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save elbosso/584a4bc434190e726d59c688b088fb5b to your computer and use it in GitHub Desktop.
Save elbosso/584a4bc434190e726d59c688b088fb5b to your computer and use it in GitHub Desktop.
CONTAINERNAME=hillshading
PROCESSORCOUNT=$(cat /proc/cpuinfo | grep processor | wc -l) # used to speed up make
lxc-create -n $CONTAINERNAME -t download -- --arch amd64 --dist ubuntu --release xenial
lxc-start -n $CONTAINERNAME
lxc-attach -n $CONTAINERNAME -- apt-get update
lxc-attach -n $CONTAINERNAME -- apt-get -y upgrade
lxc-attach -n $CONTAINERNAME -- apt-get -y install joe screen conky-cli openssh-server curl unzip gdal-bin tar wget bzip2 build-essential clang git autoconf libtool libxml2-dev libbz2-dev libgeos-dev libgeos++-dev libproj-dev gdal-bin libgdal-dev g++ libmapnik-dev mapnik-utils python-mapnik libxml2-dev libfreetype6-dev libjpeg-dev libpng-dev libproj-dev libtiff-dev libcairo2 libcairo2-dev python-cairo python-cairo-dev libgdal-dev build-essential python-dev libbz2-dev libicu-dev libboost-all-dev apache2 apache2-dev python-yaml python-pip mapnik-utils fonts-noto-cjk fonts-noto-hinted fonts-noto-unhinted fonts-hanazono ttf-unifont fontconfig fonts-dejavu-core nodejs-legacy npm
lxc-attach -n $CONTAINERNAME -- apt-get clean
lxc-attach -n $CONTAINERNAME -- useradd -m tileserver
lxc-attach -n $CONTAINERNAME -- passwd tileserver
lxc-attach -n $CONTAINERNAME -- usermod -aG sudo tileserver
ssh tileserver@$CONTAINERNAME
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
test -d ~/src || mkdir ~/src ; cd ~/src
git clone https://github.com/openstreetmap/mod_tile.git
git clone https://github.com/gravitystorm/openstreetmap-carto.git
git clone https://github.com/googlei18n/noto-emoji.git
mapnik-config -v
python -c "import mapnik;print mapnik.__file__"
curl localhost| grep 'It works!'
cd mod_tile
./autogen.sh && ./configure && make -j$PROCESSORCOUNT && sudo make install && sudo make install-mod_tile && sudo ldconfig
cd ~/src/
sudo cp noto-emoji/fonts/NotoColorEmoji.ttf noto-emoji/fonts/NotoEmoji-Regular.ttf /usr/share/fonts/truetype/noto
sudo fc-cache -fv
fc-list
fc-list | grep Emoji
cd openstreetmap-carto
scripts/get-shapefiles.py
sudo npm install -g carto@0.18.0
cd ~/src/openstreetmap-carto
carto -a "3.0.0" project.mml > style.xml
ls -l style.xml
sudo joe /usr/local/etc/renderd.conf
--XML=/home/tileserver/src/openstreetmap-carto/style.xml
--HOST=localhost
--plugins_dir=/usr/lib/mapnik/3.0/input/
sudo cp ~/src/mod_tile/debian/renderd.init /etc/init.d/renderd
sudo chmod a+x /etc/init.d/renderd
sudo joe /etc/init.d/renderd
--DAEMON=/usr/local/bin/$NAME
--DAEMON_ARGS="-c /usr/local/etc/renderd.conf"
--RUNASUSER=tileserver
sudo mkdir -p /var/lib/mod_tile
sudo chown tileserver:tileserver /var/lib/mod_tile
sudo systemctl daemon-reload
sudo systemctl start renderd
sudo systemctl enable renderd
sudo joe /etc/apache2/mods-available/mod_tile.load
--LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so
sudo ln -s /etc/apache2/mods-available/mod_tile.load /etc/apache2/mods-enabled/
sudo joe /etc/apache2/sites-enabled/000-default.conf
--# Load all the tilesets defined in the configuration file into this virtual host
--LoadTileConfigFile /usr/local/etc/renderd.conf
--# Socket where we connect to the rendering daemon
--ModTileRenderdSocketName /var/run/renderd/renderd.sock
--# Timeout before giving up for a tile to be rendered
--ModTileRequestTimeout 3
--# Timeout before giving up for a tile to be rendered that is otherwise missing
--ModTileMissingRequestTimeout 60
sudo systemctl restart apache2
#clean out /home/tileserver/src/openstreetmap-carto/style.xml (essentially: remove all layers and styles)
sudo service renderd restart
wget --spider http://localhost/osm_tiles/0/0/0.png
cd ~/src
mkdir dem
cd dem
wget https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N49E010.hgt.zip
wget https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N49E011.hgt.zip
wget https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N49E012.hgt.zip
wget https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N50E010.hgt.zip
wget https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N50E011.hgt.zip
wget https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N50E012.hgt.zip
wget https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N51E010.hgt.zip
wget https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N51E011.hgt.zip
wget https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N51E012.hgt.zip
wget https://www.grassbook.org/wp-content/uploads/neteler/rs/srtm/srtm_generate_hdr.sh
joe shade.ramp
--0 0 0 0 255
--32 0 0 0 240
--64 0 0 0 180
--96 0 0 0 120
--128 0 0 0 0
--129 255 255 255 0
--160 255 255 255 32
--224 255 255 255 128
--255 255 255 255 192
ID=N49E010
/bin/bash srtm_generate_hdr.sh ${ID}.hgt.zip
gdal_translate -of GTiff -co "TILED=YES" -a_srs "+proj=latlong" ${ID}.tif ${ID}_adapted.tif
gdalwarp -of GTiff -co "TILED=YES" -srcnodata 32767 -t_srs "+proj=merc +ellps=sphere +R=6378137 +a=6378137 +units=m" -rcs -order 3 -tr 30 30 -multi ${ID}_adapted.tif ${ID}_warped.tif
gdaldem hillshade ${ID}_warped.tif ${ID}_hillshade.tif
gdaldem color-relief ${ID}_hillshade.tif -alpha shade.ramp ${ID}_hillshade_overlay.tif
ID=N49E010
gdaldem color-relief ${ID}_hillshade.tif -alpha shade.ramp ${ID}_hillshade_overlay.tif
ID=N49E011
gdaldem color-relief ${ID}_hillshade.tif -alpha shade.ramp ${ID}_hillshade_overlay.tif
ID=N49E012
gdaldem color-relief ${ID}_hillshade.tif -alpha shade.ramp ${ID}_hillshade_overlay.tif
ID=N50E010
gdaldem color-relief ${ID}_hillshade.tif -alpha shade.ramp ${ID}_hillshade_overlay.tif
ID=N50E011
gdaldem color-relief ${ID}_hillshade.tif -alpha shade.ramp ${ID}_hillshade_overlay.tif
ID=N50E012
gdaldem color-relief ${ID}_hillshade.tif -alpha shade.ramp ${ID}_hillshade_overlay.tif
ID=N51E010
gdaldem color-relief ${ID}_hillshade.tif -alpha shade.ramp ${ID}_hillshade_overlay.tif
ID=N51E011
gdaldem color-relief ${ID}_hillshade.tif -alpha shade.ramp ${ID}_hillshade_overlay.tif
ID=N51E012
gdaldem color-relief ${ID}_hillshade.tif -alpha shade.ramp ${ID}_hillshade_overlay.tif
joe /home/tileserver/src/openstreetmap-carto/style.xml
#remainder is content of style file!!
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Map[]>
<Map srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over" background-c
<Parameters>
<Parameter name="scale">1</Parameter>
<Parameter name="metatile">2</Parameter>
<Parameter name="name"><![CDATA[OpenStreetMap Carto]]></Parameter>
<Parameter name="description"><![CDATA[A general-purpose OpenStreetMap mapnik style, in CartoCSS]]></Parameter>
<Parameter name="bounds">-180,-85.05112877980659,180,85.05112877980659</Parameter>
<Parameter name="center">0,0,4</Parameter>
<Parameter name="format">png</Parameter>
<Parameter name="minzoom">0</Parameter>
<Parameter name="maxzoom">22</Parameter>
</Parameters>
<Layer name="dem" status="on">
<StyleName>raster</StyleName>
<Datasource>
<Parameter name="type">gdal</Parameter>
<Parameter name="file">/home/tileserver/src/dem/N51E010_hillshade_overlay.tif</Parameter>
<Parameter name="format">tiff</Parameter>
</Datasource>
</Layer>
<Layer name="dem" status="on">
<StyleName>raster</StyleName>
<Datasource>
<Parameter name="type">gdal</Parameter>
<Parameter name="file">/home/tileserver/src/dem/N51E011_hillshade_overlay.tif</Parameter>
<Parameter name="format">tiff</Parameter>
</Datasource>
</Layer>
<Layer name="dem" status="on">
<StyleName>raster</StyleName>
<Datasource>
<Parameter name="type">gdal</Parameter>
<Parameter name="file">/home/tileserver/src/dem/N51E012_hillshade_overlay.tif</Parameter>
<Parameter name="format">tiff</Parameter>
</Datasource>
</Layer>
<Layer name="dem" status="on">
<StyleName>raster</StyleName>
<Datasource>
<Parameter name="type">gdal</Parameter>
<Parameter name="file">/home/tileserver/src/dem/N50E010_hillshade_overlay.tif</Parameter>
<Parameter name="format">tiff</Parameter>
</Datasource>
</Layer>
<Layer name="dem" status="on">
<StyleName>raster</StyleName>
<Datasource>
<Parameter name="type">gdal</Parameter>
<Parameter name="file">/home/tileserver/src/dem/N50E011_hillshade_overlay.tif</Parameter>
<Parameter name="format">tiff</Parameter>
</Datasource>
</Layer>
<Layer name="dem" status="on">
<StyleName>raster</StyleName>
<Datasource>
<Parameter name="type">gdal</Parameter>
<Parameter name="file">/home/tileserver/src/dem/N50E012_hillshade_overlay.tif</Parameter>
<Parameter name="format">tiff</Parameter>
</Datasource>
</Layer>
<Layer name="dem" status="on">
<StyleName>raster</StyleName>
<Datasource>
<Parameter name="type">gdal</Parameter>
<Parameter name="file">/home/tileserver/src/dem/N49E010_hillshade_overlay.tif</Parameter>
<Parameter name="format">tiff</Parameter>
</Datasource>
</Layer>
<Layer name="dem" status="on">
<StyleName>raster</StyleName>
<Datasource>
<Parameter name="type">gdal</Parameter>
<Parameter name="file">/home/tileserver/src/dem/N49E011_hillshade_overlay.tif</Parameter>
<Parameter name="format">tiff</Parameter>
</Datasource>
</Layer>
<Layer name="dem" status="on">
<StyleName>raster</StyleName>
<Datasource>
<Parameter name="type">gdal</Parameter>
<Parameter name="file">/home/tileserver/src/dem/N49E012_hillshade_overlay.tif</Parameter>
<Parameter name="format">tiff</Parameter>
</Datasource>
</Layer>
<Style name="raster">
<Rule>
<RasterSymbolizer>
</RasterSymbolizer>
</Rule>
</Style>
</Map>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment