下記のコマンドをセルに打ち込んで打ち込んでcartopyをインストールします。
!grep '^deb ' /etc/apt/sources.list | \
sed 's/^deb /deb-src /g' | \
tee /etc/apt/sources.list.d/deb-src.list
!apt-get -qq update
!apt-get -qq build-dep python3-cartopy
!pip uninstall -y shapely
!pip install --no-binary cartopy cartopy==0.17.0
deb-src http://archive.ubuntu.com/ubuntu/ bionic main restricted deb-src http://archive.ubuntu.com/ubuntu/ bionic-updates main restricted deb-src http://archive.ubuntu.com/ubuntu/ bionic universe deb-src http://archive.ubuntu.com/ubuntu/ bionic-updates universe deb-src http://archive.ubuntu.com/ubuntu/ bionic multiverse deb-src http://archive.ubuntu.com/ubuntu/ bionic-updates multiverse deb-src http://archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://security.ubuntu.com/ubuntu/ bionic-security main restricted deb-src http://security.ubuntu.com/ubuntu/ bionic-security universe deb-src http://security.ubuntu.com/ubuntu/ bionic-security multiverse deb-src https://cloud.r-project.org/bin/linux/ubuntu bionic-cran40/ Extracting templates from packages: 100% Selecting previously unselected package libmagic-mgc. (Reading database ... 155222 files and directories currently installed.) Preparing to unpack .../00-libmagic-mgc_1%3a5.32-2ubuntu0.4_amd64.deb ... Unpacking libmagic-mgc (1:5.32-2ubuntu0.4) ... Selecting previously unselected package libmagic1:amd64. Preparing to unpack .../01-libmagic1_1%3a5.32-2ubuntu0.4_amd64.deb ... Unpacking libmagic1:amd64 (1:5.32-2ubuntu0.4) ... Selecting previously unselected package file. Preparing to unpack .../02-file_1%3a5.32-2ubuntu0.4_amd64.deb ... Unpacking file (1:5.32-2ubuntu0.4) ... Selecting previously unselected package gettext-base. Preparing to unpack .../03-gettext-base_0.19.8.1-6ubuntu0.3_amd64.deb ... Unpacking gettext-base (0.19.8.1-6ubuntu0.3) ... Selecting previously unselected package libsigsegv2:amd64. Preparing to unpack .../04-libsigsegv2_2.12-1_amd64.deb ... Unpacking libsigsegv2:amd64 (2.12-1) ... Selecting previously unselected package m4. Preparing to unpack .../05-m4_1.4.18-1_amd64.deb ... Unpacking m4 (1.4.18-1) ... Selecting previously unselected package autoconf. Preparing to unpack .../06-autoconf_2.69-11_all.deb ... Unpacking autoconf (2.69-11) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../07-autotools-dev_20180224.1_all.deb ... Unpacking autotools-dev (20180224.1) ... Selecting previously unselected package automake. Preparing to unpack .../08-automake_1%3a1.15.1-3ubuntu2_all.deb ... Unpacking automake (1:1.15.1-3ubuntu2) ... Selecting previously unselected package autopoint. Preparing to unpack .../09-autopoint_0.19.8.1-6ubuntu0.3_all.deb ... Unpacking autopoint (0.19.8.1-6ubuntu0.3) ... Selecting previously unselected package cython. Preparing to unpack .../10-cython_0.26.1-0.4_amd64.deb ... Unpacking cython (0.26.1-0.4) ... Selecting previously unselected package cython3. Preparing to unpack .../11-cython3_0.26.1-0.4_amd64.deb ... Unpacking cython3 (0.26.1-0.4) ... Selecting previously unselected package libtool. Preparing to unpack .../12-libtool_2.4.6-2_all.deb ... Unpacking libtool (2.4.6-2) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../13-dh-autoreconf_17_all.deb ... Unpacking dh-autoreconf (17) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../14-libarchive-zip-perl_1.60-1ubuntu0.1_all.deb ... Unpacking libarchive-zip-perl (1.60-1ubuntu0.1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../15-libfile-stripnondeterminism-perl_0.040-1.1~build1_all.deb ... Unpacking libfile-stripnondeterminism-perl (0.040-1.1~build1) ... Selecting previously unselected package libtimedate-perl. Preparing to unpack .../16-libtimedate-perl_2.3000-2_all.deb ... Unpacking libtimedate-perl (2.3000-2) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../17-dh-strip-nondeterminism_0.040-1.1~build1_all.deb ... Unpacking dh-strip-nondeterminism (0.040-1.1~build1) ... Selecting previously unselected package gettext. Preparing to unpack .../18-gettext_0.19.8.1-6ubuntu0.3_amd64.deb ... Unpacking gettext (0.19.8.1-6ubuntu0.3) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../19-intltool-debian_0.35.0+20060710.4_all.deb ... Unpacking intltool-debian (0.35.0+20060710.4) ... Selecting previously unselected package po-debconf. Preparing to unpack .../20-po-debconf_1.0.20_all.deb ... Unpacking po-debconf (1.0.20) ... Selecting previously unselected package debhelper. Preparing to unpack .../21-debhelper_11.1.6ubuntu2_all.deb ... Unpacking debhelper (11.1.6ubuntu2) ... Selecting previously unselected package libpython-all-dev:amd64. Preparing to unpack .../22-libpython-all-dev_2.7.15~rc1-1_amd64.deb ... Unpacking libpython-all-dev:amd64 (2.7.15~rc1-1) ... Selecting previously unselected package libpython3-all-dev:amd64. Preparing to unpack .../23-libpython3-all-dev_3.6.7-1~18.04_amd64.deb ... Unpacking libpython3-all-dev:amd64 (3.6.7-1~18.04) ... Selecting previously unselected package python-all. Preparing to unpack .../24-python-all_2.7.15~rc1-1_amd64.deb ... Unpacking python-all (2.7.15~rc1-1) ... Selecting previously unselected package python-all-dev. Preparing to unpack .../25-python-all-dev_2.7.15~rc1-1_amd64.deb ... Unpacking python-all-dev (2.7.15~rc1-1) ... Selecting previously unselected package python-pkg-resources. Preparing to unpack .../26-python-pkg-resources_39.0.1-2_all.deb ... Unpacking python-pkg-resources (39.0.1-2) ... Selecting previously unselected package python-nose. Preparing to unpack .../27-python-nose_1.3.7-3_all.deb ... Unpacking python-nose (1.3.7-3) ... Selecting previously unselected package python-setuptools. Preparing to unpack .../28-python-setuptools_39.0.1-2_all.deb ... Unpacking python-setuptools (39.0.1-2) ... Selecting previously unselected package python-shapely. Preparing to unpack .../29-python-shapely_1.6.4-1_amd64.deb ... Unpacking python-shapely (1.6.4-1) ... Selecting previously unselected package python-six. Preparing to unpack .../30-python-six_1.11.0-2_all.deb ... Unpacking python-six (1.11.0-2) ... Selecting previously unselected package python3-all. Preparing to unpack .../31-python3-all_3.6.7-1~18.04_amd64.deb ... Unpacking python3-all (3.6.7-1~18.04) ... Selecting previously unselected package python3-all-dev. Preparing to unpack .../32-python3-all-dev_3.6.7-1~18.04_amd64.deb ... Unpacking python3-all-dev (3.6.7-1~18.04) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../33-python3-pkg-resources_39.0.1-2_all.deb ... Unpacking python3-pkg-resources (39.0.1-2) ... Selecting previously unselected package python3-nose. Preparing to unpack .../34-python3-nose_1.3.7-3_all.deb ... Unpacking python3-nose (1.3.7-3) ... Selecting previously unselected package python3-numpy. Preparing to unpack .../35-python3-numpy_1%3a1.13.3-2ubuntu1_amd64.deb ... Unpacking python3-numpy (1:1.13.3-2ubuntu1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../36-python3-setuptools_39.0.1-2_all.deb ... Unpacking python3-setuptools (39.0.1-2) ... Selecting previously unselected package python3-shapely. Preparing to unpack .../37-python3-shapely_1.6.4-1_amd64.deb ... Unpacking python3-shapely (1.6.4-1) ... Selecting previously unselected package python3-six. Preparing to unpack .../38-python3-six_1.11.0-2_all.deb ... Unpacking python3-six (1.11.0-2) ... Selecting previously unselected package proj-bin. Preparing to unpack .../39-proj-bin_4.9.3-2_amd64.deb ... Unpacking proj-bin (4.9.3-2) ... Selecting previously unselected package python-pyshp. Preparing to unpack .../40-python-pyshp_1.2.12+ds-1_all.deb ... Unpacking python-pyshp (1.2.12+ds-1) ... Selecting previously unselected package python3-pyshp. Preparing to unpack .../41-python3-pyshp_1.2.12+ds-1_all.deb ... Unpacking python3-pyshp (1.2.12+ds-1) ... Setting up python-shapely (1.6.4-1) ... Setting up libarchive-zip-perl (1.60-1ubuntu0.1) ... Setting up python-pyshp (1.2.12+ds-1) ... Setting up libtimedate-perl (2.3000-2) ... Setting up libsigsegv2:amd64 (2.12-1) ... Setting up python3-numpy (1:1.13.3-2ubuntu1) ... Setting up python3-six (1.11.0-2) ... Setting up libpython-all-dev:amd64 (2.7.15~rc1-1) ... Setting up gettext-base (0.19.8.1-6ubuntu0.3) ... Setting up python3-shapely (1.6.4-1) ... Setting up python3-pyshp (1.2.12+ds-1) ... Setting up m4 (1.4.18-1) ... Setting up python3-pkg-resources (39.0.1-2) ... Setting up python-pkg-resources (39.0.1-2) ... Setting up cython (0.26.1-0.4) ... Setting up libmagic-mgc (1:5.32-2ubuntu0.4) ... Setting up libmagic1:amd64 (1:5.32-2ubuntu0.4) ... Setting up python-six (1.11.0-2) ... Setting up libpython3-all-dev:amd64 (3.6.7-1~18.04) ... Setting up autotools-dev (20180224.1) ... Setting up python3-nose (1.3.7-3) ... Setting up proj-bin (4.9.3-2) ... Setting up python3-all (3.6.7-1~18.04) ... Setting up cython3 (0.26.1-0.4) ... Setting up python3-setuptools (39.0.1-2) ... Setting up python-nose (1.3.7-3) ... Setting up python-all (2.7.15~rc1-1) ... Setting up autopoint (0.19.8.1-6ubuntu0.3) ... Setting up libfile-stripnondeterminism-perl (0.040-1.1~build1) ... Setting up python-setuptools (39.0.1-2) ... Setting up gettext (0.19.8.1-6ubuntu0.3) ... Setting up python3-all-dev (3.6.7-1~18.04) ... Setting up autoconf (2.69-11) ... Setting up file (1:5.32-2ubuntu0.4) ... Setting up intltool-debian (0.35.0+20060710.4) ... Setting up python-all-dev (2.7.15~rc1-1) ... Setting up automake (1:1.15.1-3ubuntu2) ... update-alternatives: using /usr/bin/automake-1.15 to provide /usr/bin/automake (automake) in auto mode Setting up libtool (2.4.6-2) ... Setting up po-debconf (1.0.20) ... Setting up dh-autoreconf (17) ... Setting up debhelper (11.1.6ubuntu2) ... Setting up dh-strip-nondeterminism (0.040-1.1~build1) ... Processing triggers for libc-bin (2.27-3ubuntu1.3) ... /sbin/ldconfig.real: /usr/local/lib/python3.7/dist-packages/ideep4py/lib/libmkldnn.so.0 is not a symbolic link Processing triggers for man-db (2.8.3-2ubuntu0.1) ... Found existing installation: Shapely 1.8.0 Uninstalling Shapely-1.8.0: Successfully uninstalled Shapely-1.8.0 Collecting cartopy==0.17.0 Downloading Cartopy-0.17.0.tar.gz (8.9 MB) |████████████████████████████████| 8.9 MB 6.1 MB/s Installing build dependencies ... done Getting requirements to build wheel ... done Preparing wheel metadata ... done Requirement already satisfied: pyshp>=1.1.4 in /usr/lib/python3/dist-packages (from cartopy==0.17.0) (1.2.12) Requirement already satisfied: setuptools>=0.7.2 in /usr/local/lib/python3.7/dist-packages (from cartopy==0.17.0) (57.4.0) Requirement already satisfied: shapely>=1.5.6 in /usr/lib/python3/dist-packages (from cartopy==0.17.0) (1.6.4) Requirement already satisfied: six>=1.3.0 in /usr/local/lib/python3.7/dist-packages (from cartopy==0.17.0) (1.15.0) Requirement already satisfied: numpy>=1.10 in /usr/local/lib/python3.7/dist-packages (from cartopy==0.17.0) (1.19.5) Building wheels for collected packages: cartopy Building wheel for cartopy (PEP 517) ... done Created wheel for cartopy: filename=Cartopy-0.17.0-cp37-cp37m-linux_x86_64.whl size=9699140 sha256=b71d6834cb2c1bbad511b58931dcb6cbdcd19490d2443b36efd8924e796f05d6 Stored in directory: /root/.cache/pip/wheels/01/59/80/25fe1226e2ab9a7c9a3f88e3ced2a0f656555bde1d96e1fede Successfully built cartopy Installing collected packages: cartopy Successfully installed cartopy-0.17.0
インストールが完了したら、モジュールをインポートします。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import Normalize
# 以下の3つが新しい
import cartopy.crs as ccrs
from cartopy.mpl.ticker import LatitudeFormatter,LongitudeFormatter
import matplotlib.ticker as mticker
まず、左にあるアイコンの一番下をクリックします。
するとすると3つアイコンが出てくるので、一番右のアイコンを押してアクセス権を許可してください。
これで自分のドライブにアクセスできるようになりました。
使用したいデータは自分のドライブに置きましょう。自分のドライブの中身は、左の一番下のアイコンをクリックしてファイル一覧から
content→drive→MyDrive
で確認できます。データのパスが欲しい場合は
データを右クリック→「パスをコピー」
で簡単にパスを取得できます。
loadfile = '/content/drive/MyDrive/Colab Notebooks/sst_OISST.npz' # 取得したパス
sst_dataset = np.load(loadfile)
sst = sst_dataset['sst']
lon2 = sst_dataset['lon2']
lat2 = sst_dataset['lat2']
y = sst_dataset['y']
m = sst_dataset['m']
試しにランベルト正角円錐図法で描画してみます。
# 描画したい年・月
draw_year = 1997
draw_month = 12
# vminはカラーバーの下限,vmaxはカラーバーの上限
# vintはカラーバーの間隔
vmin = -5
vmax = 35
vint = 5
# 深い青から深い赤に向かうカラーバーを指定
cm = plt.get_cmap('seismic')
fig = plt.figure()
ax = plt.axes(projection=ccrs.LambertConformal())
# 色で塗られた等高線を描く
cs = ax.contourf(lon2, lat2, \
np.squeeze(sst[:, :, (y==draw_year)*(m==draw_month)]), \
cmap=cm, norm=Normalize(vmin=vmin, vmax=vmax),\
levels=np.arange(vmin,vmax+vint,vint), extend='both', \
transform=ccrs.PlateCarree())
#最後の一行が大事!!!(lon2, lat2は正距円筒の書き方なので,変換が必要)
# 海岸線を書く
ax.coastlines(lw=0.5,color='gray', resolution='50m')
# 緯度経度線を書く
ax.gridlines(xlocs=mticker.MultipleLocator(10), \
ylocs=mticker.MultipleLocator(10), \
linestyle='-', color='gray')
plt.colorbar(cs, shrink = 0.8) # カラーバーをつける
<matplotlib.colorbar.Colorbar at 0x7f03a52f6a10>
/usr/local/lib/python3.7/dist-packages/cartopy/io/__init__.py:260: DownloadWarning: Downloading: http://naciscdn.org/naturalearth/50m/physical/ne_50m_coastline.zip warnings.warn('Downloading: {}'.format(url), DownloadWarning)