🐳

[Tips] Fast Map Matching の Docker環境

2024/09/16に公開

Map Matching とは

西田さんの記事を読んでください。

https://zenn.dev/r_nsd/articles/2938c356eba355

Map Matching の Docker環境

以下のDockerfileでビルドして使っています。Python 2系じゃなくて、Python 3系を使うようにしていました。あとは/homeにあるディレクトリとかにデータを置いたり、ホストのディレクトリをマウントするなりして使います。numpyが'<2'がいいかどうかは実装するもの(他のもの)に依存するかもしれません。

gdalの扱いが結構めんどくさく、まだベストプラクティスを見いだせていません(どなたか詳しい人のコメントを募集しています)。

FROM ubuntu:22.04

# 環境設定
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update
RUN apt install -y \
    build-essential software-properties-common \
    libssl-dev make cmake nano wget git

# FMM用の追加
RUN add-apt-repository ppa:ubuntugis/ppa && apt-get -q update
RUN apt-get install -y swig python3-dev python3-pip
RUN apt-get install -y gdal-bin libgdal-dev \
            python3-gdal python3-fiona python3-geopandas
RUN apt-get install -y libboost-dev libboost-serialization-dev 

# 環境+ファイルの修正(sed)
WORKDIR /home
RUN git clone https://github.com/cyang-kth/fmm.git
RUN sed -i "s/python-dev/python3-dev/g" /home/fmm/travis_install_dependency.sh
RUN sed -i "s/COMMAND python/COMMAND python3/g" /home/fmm/python/CMakeLists.txt
WORKDIR /home/fmm/build
RUN cmake ..
RUN make -j4
RUN make install

# 作業
WORKDIR /home

# 環境 (追加)
RUN pip3 install -U pip
RUN pip3 install -U requests
RUN pip3 install "numpy<2" pandas==2.2.2 ipython osmnx folium shapely polars

Discussion