From 239f3e570472f19a8015a63186daf792327522b1 Mon Sep 17 00:00:00 2001
From: "Daniel.Frisinghelli" <daniel.frisinghelli@eurac.edu>
Date: Thu, 20 Aug 2020 14:20:20 +0200
Subject: [PATCH] Implemented a check on the scene identifier

---
 pysegcnn/core/predict.py | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/pysegcnn/core/predict.py b/pysegcnn/core/predict.py
index d3798d9..9405d7c 100644
--- a/pysegcnn/core/predict.py
+++ b/pysegcnn/core/predict.py
@@ -38,17 +38,30 @@ def _get_scene_tiles(ds, scene_id):
 
     Parameters
     ----------
-    ds : `pysegcnn.core.dataset.ImageDataset`
-        An instance of `~pysegcnn.core.dataset.ImageDataset`.
+    ds : `pysegcnn.core.split.RandomSubset` or
+    `pysegcnn.core.split.SceneSubset`
+        An instance of `~pysegcnn.core.split.RandomSubset` or
+        `~pysegcnn.core.split.SceneSubset`.
     scene_id : `str`
         A valid scene identifier.
 
+    Raises
+    ------
+    ValueError
+        Raised if ``scene_id`` is not a valid scene identifier for the dataset
+        ``ds``.
+
     Returns
     -------
     indices : `list` [`int`]
         List of indices of the tiles from scene with id ``scene_id`` in ``ds``.
 
     """
+    # check if the scene id is valid
+    scene_meta = ds.dataset.parse_scene_id(scene_id)
+    if scene_meta is None:
+        raise ValueError('{} is not a valid scene identifier'.format(scene_id))
+
     # iterate over the scenes of the dataset
     indices = []
     for i, scene in enumerate(ds.scenes):
-- 
GitLab