In this notebook we present the pyJedAI Geospatial Interlinking functionality.
!pip install pyjedai:0.1.4
^C
!python --version
Python 3.9.16
import csv
import sys
import os
from pyjedai.datamodel import SpatialData
from pyjedai.spatial.filtering import StandardSpatialFiltering
from pyjedai.spatial.initialization import StandardSpatialInitialization
from pyjedai.spatial.verification import StandardSpatialVerification
data_dir = '../data/spatial/'
maxInt = sys.maxsize
while True:
try:
csv.field_size_limit(maxInt)
break
except OverflowError:
maxInt = int(maxInt/10)
path1 = os.path.join(data_dir,"regions_gr.csv")
path2 = os.path.join(data_dir,"wildlife_sanctuaries.csv")
delimiter1 = "\t"
delimiter2 = "\t"
# Read the CSV files
file1 = open(path1, newline='', encoding='utf-8')
file2 = open(path2, newline='', encoding='utf-8')
dataset_1 = csv.reader(file1, delimiter=delimiter1)
dataset_2 = csv.reader(file2, delimiter=delimiter1)
spatial_data = \
SpatialData(source_reader=dataset_1,
source_delimiter="\t",
target_reader=dataset_2, target_delimiter="\t",
skip_header=True)
SSF = StandardSpatialFiltering()
spatial_index, theta_x, theta_y = SSF.process(spatial_data)
SSI = StandardSpatialInitialization(budget=1000, wScheme="MBR")
priority_pairs = SSI.process(spatial_data, spatial_index, theta_x=theta_x, theta_y=theta_y)
SSV = StandardSpatialVerification(q_pairs=100)
SSV.process(spatial_data=spatial_data, priority_pairs=priority_pairs)
SSV.evaluate()
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── Performance: Precision: 0.72% Recall: 6.48% F1-score: 1.29% Progressive Geometry Recall: 2.33% ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
{'Precision:': 0.7192008879023307, 'Recall:': 6.48, 'F1-score:': 1.2947052947052946, 'Progressivr geometry recall:': 2.3338068812430635}