diff --git a/spatio_temporal_dataset/coordinates/abstract_coordinates.py b/spatio_temporal_dataset/coordinates/abstract_coordinates.py
index 940f097a143c9c33b108e219acdba01b5843360b..0c35f5c2b1ecfc4087c163cb9970324e413621bb 100644
--- a/spatio_temporal_dataset/coordinates/abstract_coordinates.py
+++ b/spatio_temporal_dataset/coordinates/abstract_coordinates.py
@@ -35,7 +35,9 @@ class AbstractCoordinates(object):
         # Extract df_all_coordinates from df
         coordinate_columns = [c for c in df.columns if c in self.COORDINATES_NAMES]
         assert len(coordinate_columns) > 0
-        self.df_all_coordinates = df.loc[:, coordinate_columns].copy()  # type: pd.DataFrame
+        # Sort coordinates according to a specified order
+        sorted_coordinates_columns = [c for c in self.COORDINATES_NAMES if c in coordinate_columns]
+        self.df_all_coordinates = df.loc[:, sorted_coordinates_columns].copy()  # type: pd.DataFrame
         # Check the data type of the coordinate columns
         accepted_dtypes = ['float64', 'int64']
         assert len(self.df_all_coordinates.select_dtypes(include=accepted_dtypes).columns) == len(coordinate_columns), \
diff --git a/test/test_spatio_temporal_dataset/test_coordinates.py b/test/test_spatio_temporal_dataset/test_coordinates.py
index a95abdad6569564ff309c5b81932793673c84a53..baf51fc904c07fc9c7fe66a82f1ed383adc20308 100644
--- a/test/test_spatio_temporal_dataset/test_coordinates.py
+++ b/test/test_spatio_temporal_dataset/test_coordinates.py
@@ -1,5 +1,6 @@
 import unittest
-from collections import Counter
+import pandas as pd
+from collections import Counter, OrderedDict
 
 from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractCoordinates
 from spatio_temporal_dataset.coordinates.spatio_temporal_coordinates.generated_spatio_temporal_coordinates import \
@@ -43,17 +44,37 @@ class SpatioTemporalCoordinates(unittest.TestCase):
     nb_points = 4
     nb_steps = 2
 
-    def tearDown(self):
-        c = Counter([len(self.coordinates.df_coordinates(split)) for split in SpatioTemporalSlicer.SPLITS])
-        good_count = c == Counter([2, 2, 2, 2]) or c == Counter([0, 0, 4, 4])
-        self.assertTrue(good_count)
-
     def test_temporal_circle(self):
         self.coordinates = UniformSpatioTemporalCoordinates.from_nb_points_and_nb_steps(nb_points=self.nb_points,
                                                                                         nb_steps=self.nb_steps,
                                                                                         train_split_ratio=0.5)
-    # def test_temporal_alps(self):
-    #     pass
+        c = Counter([len(self.coordinates.df_coordinates(split)) for split in SpatioTemporalSlicer.SPLITS])
+        good_count = c == Counter([2, 2, 2, 2]) or c == Counter([0, 0, 4, 4])
+        self.assertTrue(good_count)
+
+    def test_ordered_coordinates(self):
+        # Order coordinates, to ensure that the first dimension/the second dimension and so on..
+        # Always are in the same order to a given type (e.g. spatio_temporal= of coordinates
+        # Check space coordinates
+        d = OrderedDict()
+        d[AbstractCoordinates.COORDINATE_Z] = [1]
+        d[AbstractCoordinates.COORDINATE_X] = [1]
+        d[AbstractCoordinates.COORDINATE_Y] = [1]
+        df = pd.DataFrame.from_dict(d)
+        for df2 in [df, df.loc[:, ::-1]][-1:]:
+            coordinates = AbstractCoordinates(df=df2, slicer_class=SpatioTemporalSlicer)
+            self.assertEqual(list(coordinates.df_all_coordinates.columns),
+                             [AbstractCoordinates.COORDINATE_X, AbstractCoordinates.COORDINATE_Y,
+                              AbstractCoordinates.COORDINATE_Z])
+        # Check space/time ordering
+        d = OrderedDict()
+        d[AbstractCoordinates.COORDINATE_T] = [1]
+        d[AbstractCoordinates.COORDINATE_X] = [1]
+        df = pd.DataFrame.from_dict(d)
+        for df2 in [df, df.loc[:, ::-1]][-1:]:
+            coordinates = AbstractCoordinates(df=df2, slicer_class=SpatioTemporalSlicer)
+            self.assertEqual(list(coordinates.df_all_coordinates.columns),
+                             [AbstractCoordinates.COORDINATE_X, AbstractCoordinates.COORDINATE_T])
 
 
 if __name__ == '__main__':