都道府県及び市区町村の東西南北端点の経度緯度のPDFのDMSからDEGに変換

www.gsi.go.jp

!wget https://www.gsi.go.jp/KOKUJYOHO/CENTER/kendata/ehime_heso.pdf -O data.pdf

!apt update

!apt install python3-tk ghostscript
!pip install camelot-py[cv]
import camelot
import pandas as pd
import re

def dms2deg(c):

    dms = re.findall("[0-9]{1,3}", c)

    d, m, s = map(int, dms)

    deg = d + (m / 60.0) + (s / 3600.0)

    return deg

tables = camelot.read_pdf(
    "data.pdf", pages="all", split_text=True, strip_text=" \n", line_scale=40
)

# 北東南西を取得
lst = [
    [table.df.iat[2, 5], table.df.iat[1, 2], table.df.iat[2, 4], table.df.iat[1, 3]]
    for table in tables
]

df = pd.DataFrame(lst)

df

df1 = df.applymap(dms2deg)

import pprint

pprint.pprint(df1.values.tolist())