🐳
[Tips] Fast Map Matching の Docker環境
Map Matching とは
西田さんの記事を読んでください。
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