Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Klaus-Tockloth committed Oct 10, 2023
1 parent 7e18acc commit 9fbef17
Show file tree
Hide file tree
Showing 9 changed files with 29,367 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# ignore special macOS files
.DS_Store

# ignore directories
build/
private/
138 changes: 138 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
## Route statistics

'routestats' determines statistical data for a route which is available in the form of a CSV file.

### Where does the CSV file come from?

The CSV file can be created via the following (OpenStreetMap based) web services:

* https://brouter.m11n.de/
* https://bikerouter.de/

### How to create the CSV file?

* Variant 1: Manual creation of a route.
* Variant 2: Conversion of an existing track into a route.
* Use the pseudo routing profile 'Dummy' for this.
* Use as many track points as possible (justify function).
* This ensures that the calculated route is very close to the given track.
* Export the route as a CSV file.

### What statistical data are shown?

```
% routestats lengerich-steinbrüche.csv
Program:
Name : routestats
Release : v1.0.0 - 2023/10/10
Purpose : simple route statistics
Info : Calculates route statistics based on CSV routing data.
Input file:
-----------------------------------------------
name = lengerich-steinbrüche.csv
size = 33400 byte
time = 2023-10-03T11:19:54+02:00
-----------------------------------------------
Highway types:
-----------------------------------------------
highway=footway 0.3 % 62 m
highway=path 30.9 % 7325 m
highway=residential 1.5 % 360 m
highway=service 3.7 % 869 m
highway=steps 0.6 % 144 m
highway=tertiary 0.6 % 144 m
highway=track 21.2 % 5032 m
highway=track (grade1) 0.5 % 117 m
highway=track (grade2) 16.5 % 3905 m
highway=track (grade3) 22.9 % 5426 m
highway=track (grade4) 0.4 % 94 m
highway=unclassified 1.0 % 238 m
-----------------------------------------------
total 100.0 % 23716 m
Altitude meters (approximately):
-----------------------------------------------
downhill -629 m
uphill +628 m
height min 96 m
height max 240 m
height difference 144 m
-----------------------------------------------
Highway surface types:
-----------------------------------------------
default=paved 3.3 % 776 m
default=unpaved 24.7 % 5866 m
surface=asphalt 4.7 % 1120 m
surface=compacted 5.6 % 1324 m
surface=dirt 3.1 % 731 m
surface=gravel 40.3 % 9569 m
surface=ground 14.6 % 3455 m
surface=paved 3.6 % 858 m
surface=paving_stones 0.1 % 17 m
-----------------------------------------------
total 100.0 % 23716 m
Paved and unpaved surfaces:
-----------------------------------------------
paved 11.7 % 2771 m
unpaved 88.3 % 20945 m
-----------------------------------------------
total 100.0 % 23716 m
Smoothness types:
-----------------------------------------------
default=unknown 100.0 % 23716 m
-----------------------------------------------
total 100.0 % 23716 m
Mountain bike difficulties (mtb:scale):
-----------------------------------------------
default=unknown 96.4 % 22871 m
mtb:scale:uphill=1 2.0 % 474 m
mtb:scale:uphill=3 0.6 % 137 m
mtb:scale:uphill=4 1.0 % 234 m
-----------------------------------------------
total 100.0 % 23716 m
Hiking difficulties (sac_scale):
---------------------------------------------------------
default=unknown 100.0 % 23716 m
---------------------------------------------------------
total 100.0 % 23716 m
```

### How can 'routestats' be used?

```
% routestats
Program:
Name : routestats
Release : v1.0.0 - 2023/10/10
Purpose : simple route statistics
Info : Calculates route statistics based on CSV routing data.
Usage:
routestats csvfile
Example:
routestats riesenbeck.csv
Arguments:
csvfile = name of csv file (from brouter.m11n.de)
```

### Is there a demo?

Link:

https://brouter.m11n.de/#map=14/52.1718/7.9317/standard,route-quality&lonlats=7.88421,52.179888;7.884904,52.180073;7.885889,52.181287;7.885197,52.180718;7.884926,52.18092;7.885337,52.181416;7.884946,52.182789;7.885997,52.183609;7.887607,52.183746;7.888595,52.183346;7.889509,52.184044;7.889864,52.185578;7.890424,52.185351;7.891487,52.186053;7.892523,52.18589;7.899235,52.182669;7.900188,52.182353;7.90117,52.18263;7.905138,52.181593;7.906022,52.180869;7.905771,52.180141;7.906038,52.179949;7.908716,52.180496;7.911386,52.179825;7.913069,52.179048;7.91216,52.178538;7.912681,52.178236;7.912516,52.177917;7.913187,52.178198;7.916564,52.176681;7.920394,52.175886;7.921036,52.175039;7.921824,52.17474;7.923159,52.174881;7.925341,52.173813;7.925177,52.173561;7.925785,52.172656;7.92984,52.172907;7.930692,52.171658;7.935655,52.170951;7.937017,52.170223;7.937456,52.16975;7.937014,52.169751;7.93847,52.168717;7.93857,52.169035;7.9381,52.169295;7.938503,52.170088;7.939615,52.170242;7.940585,52.170225;7.942239,52.169479;7.942616,52.168375;7.949555,52.167805;7.951484,52.168723;7.952913,52.168718;7.955668,52.168064;7.955489,52.167181;7.95588,52.167999;7.963219,52.166236;7.964282,52.165471;7.966418,52.165469;7.970746,52.163448;7.976291,52.16273;7.977878,52.162156;7.979201,52.16069;7.980222,52.160259;7.980075,52.159624;7.98069,52.158905;7.98017,52.15912;7.980198,52.156633;7.979482,52.156377;7.979488,52.155477;7.97661,52.155373;7.973866,52.156027;7.971959,52.155964;7.971679,52.155144;7.97045,52.155475;7.967401,52.155224;7.962469,52.156639;7.962313,52.156369;7.962983,52.155664;7.962373,52.156022;7.962585,52.155777;7.963006,52.155901;7.96255,52.156329;7.962659,52.157021;7.96153,52.158427;7.962099,52.159529;7.96005,52.160486;7.952759,52.159701;7.952659,52.158977;7.954137,52.15794;7.95393,52.157189;7.951126,52.157492;7.95108,52.158089;7.950518,52.158317;7.948177,52.158499;7.94912,52.159507;7.948428,52.160077;7.948934,52.160524;7.948651,52.160963;7.946573,52.16044;7.945924,52.159633;7.943457,52.160153;7.942472,52.159526;7.930824,52.160787;7.929119,52.16049;7.928997,52.162235;7.928324,52.162831;7.923977,52.163539;7.921555,52.164608;7.922918,52.166126;7.923372,52.168819;7.923135,52.169329;7.924065,52.170274;7.923827,52.171375;7.924375,52.172225;7.924063,52.171893;7.923512,52.172148;7.92234,52.174746;7.92107,52.175071;7.920478,52.175873;7.916557,52.176664;7.91308,52.178317;7.912595,52.178218;7.912343,52.178547;7.913089,52.179105;7.911624,52.179839;7.908929,52.180605;7.906896,52.180503;7.905973,52.180014;7.906133,52.180894;7.905692,52.181365;7.901211,52.182444;7.902225,52.182551;7.900926,52.183162;7.901275,52.183697;7.899233,52.184778;7.896837,52.185472;7.895259,52.186558;7.892808,52.186769;7.888485,52.188377;7.886216,52.188457;7.884505,52.187887;7.882725,52.18675;7.883557,52.185586;7.883988,52.183828;7.885025,52.183074;7.884803,52.182768;7.885113,52.1816;7.88479,52.180959;7.885164,52.180577;7.884225,52.180003&profile=dummy

Screenshot:

![Screenshot of Webservice](./webservice.png "Webservice")

58 changes: 58 additions & 0 deletions build-exec.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/bin/sh

# ------------------------------------
# Purpose:
# - Builds executables/binaries.
#
# Releases:
# - v1.0.0 - 2023-10-10: initial release
#
# Remarks:
# - go tool dist list
# ------------------------------------

# set -o xtrace
set -o verbose

# compile 'aix'
env GOOS=aix GOARCH=ppc64 go build -o build/aix-ppc64/routestats

# compile 'darwin'
env GOOS=darwin GOARCH=amd64 go build -o build/darwin-amd64/routestats
env GOOS=darwin GOARCH=arm64 go build -o build/darwin-arm64/routestats

# compile 'dragonfly'
env GOOS=dragonfly GOARCH=amd64 go build -o build/dragonfly-amd64/routestats

# compile 'freebsd'
env GOOS=freebsd GOARCH=amd64 go build -o build/freebsd-amd64/routestats
env GOOS=freebsd GOARCH=arm64 go build -o build/freebsd-arm64/routestats

# compile 'illumos'
env GOOS=illumos GOARCH=amd64 go build -o build/illumos-amd64/routestats

# compile 'linux'
env GOOS=linux GOARCH=amd64 go build -o build/linux-amd64/routestats
env GOOS=linux GOARCH=arm64 go build -o build/linux-arm64/routestats
env GOOS=linux GOARCH=mips64 go build -o build/linux-mips64/routestats
env GOOS=linux GOARCH=mips64le go build -o build/linux-mips64le/routestats
env GOOS=linux GOARCH=ppc64 go build -o build/linux-ppc64/routestats
env GOOS=linux GOARCH=ppc64le go build -o build/linux-ppc64le/routestats
env GOOS=linux GOARCH=riscv64 go build -o build/linux-riscv64/routestats

# compile 'netbsd'
env GOOS=netbsd GOARCH=amd64 go build -o build/netbsd-amd64/routestats
env GOOS=netbsd GOARCH=arm64 go build -o build/netbsd-arm64/routestats

# compile 'openbsd'
env GOOS=openbsd GOARCH=amd64 go build -o build/openbsd-amd64/routestats
env GOOS=openbsd GOARCH=arm64 go build -o build/openbsd-arm64/routestats
env GOOS=openbsd GOARCH=mips64 go build -o build/openbsd-mips64/routestats

# compile 'solaris'
env GOOS=solaris GOARCH=amd64 go build -o build/solaris-amd64/routestats

# compile 'windows'
env GOOS=windows GOARCH=amd64 go build -o build/windows-amd64/routestats.exe
env GOOS=windows GOARCH=386 go build -o build/windows-386/routestats.exe
env GOOS=windows GOARCH=arm go build -o build/windows-arm/routestats.exe
Loading

0 comments on commit 9fbef17

Please sign in to comment.