little morning programming
This commit is contained in:
1 parent
71389d1f62
commit
fcde91436a
4 files changed
+143
-65
No files matched your search
@@ -4,21 +4,22 @@
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
quebec-osm-data = {
|
||||
url =
|
||||
"https://static.home.all-dressed-programming.com/download.geofabrik.de/north-america/canada/quebec-241223.osm.pbf";
|
||||
flake = false;
|
||||
};
|
||||
quebec-cities-poly = {
|
||||
url = "github:didiercrunch/cities";
|
||||
flake = false;
|
||||
};
|
||||
};
|
||||
outputs = { self, nixpkgs, flake-utils, quebec-osm-data, quebec-cities-poly }:
|
||||
outputs = { self, nixpkgs, flake-utils, quebec-cities-poly }:
|
||||
flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
|
||||
# osm-data = pkgs.fetchurl {
|
||||
# url =
|
||||
# "https://static.home.all-dressed-programming.com/download.geofabrik.de/north-america/canada/quebec-241223.osm.pbf";
|
||||
# hash = "sha256-JkDJxODHnZQLK4+5Bjdu5GkbmHSK9TPt2ep6nsykCRg=";
|
||||
# };
|
||||
|
||||
poly2geojson = pkgs.rustPlatform.buildRustPackage rec {
|
||||
pname = "poly2geojson";
|
||||
version = "0.1.3";
|
||||
@@ -46,18 +47,95 @@
|
||||
'';
|
||||
};
|
||||
|
||||
data-dir = pkgs.stdenv.mkDerivation {
|
||||
name = "data-dir";
|
||||
src = ./scripts;
|
||||
buildInputs = [ poly2geojson pkgs.jdk23 osmosis ];
|
||||
buildPhase = ''
|
||||
mkdir -p cities/canada/quebec
|
||||
cp ${quebec-cities-poly}/canada/quebec/* cities/canada/quebec
|
||||
chmod u+w cities/canada/quebec
|
||||
${pkgs.babashka}/bin/bb to-geojson.clj --osm-file ${quebec-osm-data} --paths cities/canada/quebec/*.poly
|
||||
custom-osmium-tool = pkgs.stdenv.mkDerivation rec {
|
||||
pname = "osmium-tool";
|
||||
version = "1.16.0";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "osmcode";
|
||||
repo = "osmium-tool";
|
||||
rev = "8ed94a5da2a24b233a77732bfaa8c75fc32ea505";
|
||||
sha256 = "sha256-YxjInUqcVfrBvAdBA/pd2J7NEBp6FvoQ97S+aW9x7jE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with pkgs; [ cmake installShellFiles pandoc ];
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
boost
|
||||
bzip2
|
||||
expat
|
||||
libosmium
|
||||
lz4
|
||||
protozero
|
||||
zlib
|
||||
nlohmann_json
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --zsh ../zsh_completion/_osmium
|
||||
'';
|
||||
};
|
||||
|
||||
geofabrik-base-url =
|
||||
"https://static.home.all-dressed-programming.com/download.geofabrik.de/north-america/canada/";
|
||||
|
||||
osm-quebec."2020" = pkgs.fetchurl {
|
||||
url = "${geofabrik-base-url}quebec-200101.osm.pbf";
|
||||
hash =
|
||||
"sha256-458a33e10a3fc70884541a00e314471e9b7c92f352fe61ec909066478fb7bd09";
|
||||
};
|
||||
osm-quebec."2021" = pkgs.fetchurl {
|
||||
url = "${geofabrik-base-url}quebec-210101.osm.pbf";
|
||||
hash =
|
||||
"sha256-90a8bfe610951da56f315140256a4918fc9b98ac03bb441778f8a66271c128a9";
|
||||
};
|
||||
osm-quebec."2022" = pkgs.fetchurl {
|
||||
url = "${geofabrik-base-url}quebec-220101.osm.pbf";
|
||||
hash =
|
||||
"sha256-899526faf3220c7e9ec9fe2499e7ba3bccfe94dfefa328c0b7846dce6494e96a";
|
||||
};
|
||||
osm-quebec."2023" = pkgs.fetchurl {
|
||||
url = "${geofabrik-base-url}quebec-230101.osm.pbf";
|
||||
hash = "sha256-AReFCvBIz42RBcOYgC25ZJaBXADW1lIzSpCI+vdrWX0=";
|
||||
};
|
||||
osm-quebec."2024" = pkgs.fetchurl {
|
||||
url = "${geofabrik-base-url}quebec-240101.osm.pbf";
|
||||
hash = "sha256-lcbn4mks4NlnwU3QwQOFdLICxFGapDC0PR/h0HlIR1E=";
|
||||
};
|
||||
osm-quebec."2025" = pkgs.fetchurl {
|
||||
url = "${geofabrik-base-url}quebec-250101.osm.pbf";
|
||||
hash = "sha256-QLIflsZuv8r2+mGVARrGkXyjWZ7qGzdSODpVka8iK8c=";
|
||||
};
|
||||
|
||||
data-dir = osm-data:
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "data-dir";
|
||||
src = ./scripts;
|
||||
buildInputs =
|
||||
[ poly2geojson pkgs.jdk23 osmosis custom-osmium-tool ];
|
||||
buildPhase = ''
|
||||
mkdir -p cities/canada/quebec
|
||||
cp ${quebec-cities-poly}/canada/quebec/* cities/canada/quebec
|
||||
chmod u+w cities/canada/quebec
|
||||
${pkgs.babashka}/bin/bb to-geojson.clj --osm-file ${osm-data} --paths cities/canada/quebec/mon*.poly
|
||||
'';
|
||||
installPhase = ''
|
||||
cp -r cities $out
|
||||
'';
|
||||
};
|
||||
|
||||
historical-data-dir = pkgs.stdenv.mkDerivation {
|
||||
name = "historical-data-dir";
|
||||
src = ./scripts;
|
||||
buildInputs = [ ];
|
||||
buildPhase = "";
|
||||
installPhase = ''
|
||||
cp -r cities $out
|
||||
mkdir -p $out
|
||||
ln -s ${data-dir osm-quebec."2023"} $out/2023
|
||||
ln -s ${data-dir osm-quebec."2024"} $out/2024
|
||||
ln -s ${data-dir osm-quebec."2025"} $out/2025
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -77,6 +155,7 @@
|
||||
default = data-dir;
|
||||
poly2geojson = poly2geojson;
|
||||
osmosis = osmosis;
|
||||
historical-data-dir = historical-data-dir;
|
||||
};
|
||||
devShell = pkgs.mkShell {
|
||||
name = "spacial-data-experiments";
|
||||
@@ -86,7 +165,7 @@
|
||||
sqlfluff
|
||||
poly2geojson
|
||||
gdal
|
||||
osmosis
|
||||
custom-osmium-tool
|
||||
python-virtual-env
|
||||
];
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user