diff --git a/doc/source/api.rst b/doc/source/api.rst index 64bad58..0d27ae4 100644 --- a/doc/source/api.rst +++ b/doc/source/api.rst @@ -12,6 +12,6 @@ Indexing .. autosummary:: :toctree: generated/ - ShapelySTRTreeIndex.__init__ - ShapelySTRTreeIndex.from_variables - ShapelySTRTreeIndex.sel + GeometryIndex + GeometryIndex.crs + GeometryIndex.sindex diff --git a/doc/source/conf.py b/doc/source/conf.py index da50322..a49b0da 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -17,6 +17,7 @@ "sphinx.ext.autodoc", "numpydoc", "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", "myst_nb", "sphinx_copybutton", ] @@ -24,6 +25,12 @@ templates_path = ["_templates"] exclude_patterns = [] +intersphinx_mapping = { + "python": ("https://docs.python.org/3", None), + "shapely": ("https://shapely.readthedocs.io/en/latest/", None), + "pyproj": ("https://pyproj4.github.io/pyproj/latest/", None), + "xarray": ("https://docs.xarray.dev/en/latest/", None), +} # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output diff --git a/doc/source/quickstart.ipynb b/doc/source/quickstart.ipynb index d1b2068..9c9ec83 100644 --- a/doc/source/quickstart.ipynb +++ b/doc/source/quickstart.ipynb @@ -30,7 +30,7 @@ "import xarray\n", "import numpy\n", "\n", - "from xvec import ShapelySTRTreeIndex" + "from xvec import GeometryIndex" ] }, { @@ -82,8 +82,19 @@ "source": [ "mode = [\"car\", \"bike\", \"foot\"]\n", "day = pandas.date_range(\"2015-01-01\", periods=100)\n", - "hours = range(24)\n", - "data = numpy.random.randint(1, 100, size=(3, 100, 24, 100, 100))" + "hours = range(24)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from numpy.random import default_rng\n", + "\n", + "rng = default_rng(1)\n", + "data = rng.integers(1, 100, size=(3, 100, 24, 100, 100))" ] }, { @@ -95,7 +106,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -465,93 +476,93 @@ " fill: currentColor;\n", "}\n", "
<xarray.DataArray (mode: 3, day: 100, time: 24, origin: 100, destination: 100)>\n",
- "array([[[[[96, 29, 64, ..., 47, 80, 71],\n",
- " [79, 79, 96, ..., 92, 12, 90],\n",
- " [19, 85, 60, ..., 43, 28, 53],\n",
+ "array([[[[[47, 51, 75, ..., 15, 54, 82],\n",
+ " [ 7, 68, 76, ..., 38, 3, 72],\n",
+ " [50, 65, 16, ..., 53, 91, 15],\n",
" ...,\n",
- " [96, 8, 35, ..., 39, 7, 62],\n",
- " [82, 87, 18, ..., 1, 77, 38],\n",
- " [99, 94, 20, ..., 92, 16, 42]],\n",
+ " [30, 1, 15, ..., 6, 36, 46],\n",
+ " [19, 47, 3, ..., 75, 42, 69],\n",
+ " [48, 94, 34, ..., 47, 54, 86]],\n",
"\n",
- " [[79, 53, 28, ..., 30, 56, 14],\n",
- " [21, 88, 91, ..., 92, 73, 14],\n",
- " [74, 49, 88, ..., 30, 23, 28],\n",
+ " [[67, 5, 73, ..., 95, 34, 44],\n",
+ " [80, 22, 89, ..., 93, 5, 41],\n",
+ " [47, 70, 65, ..., 44, 82, 54],\n",
" ...,\n",
- " [56, 76, 91, ..., 36, 94, 16],\n",
- " [80, 83, 4, ..., 91, 38, 3],\n",
- " [69, 61, 10, ..., 79, 15, 94]],\n",
+ " [91, 33, 38, ..., 24, 40, 5],\n",
+ " [78, 49, 9, ..., 45, 3, 9],\n",
+ " [87, 73, 52, ..., 32, 58, 48]],\n",
"\n",
- " [[91, 22, 13, ..., 45, 31, 17],\n",
- " [86, 48, 23, ..., 88, 55, 94],\n",
- " [56, 8, 55, ..., 68, 15, 48],\n",
+ " [[22, 57, 42, ..., 24, 60, 1],\n",
+ " [ 4, 3, 94, ..., 66, 40, 17],\n",
+ " [87, 55, 87, ..., 41, 26, 55],\n",
" ...,\n",
"...\n",
" ...,\n",
- " [27, 8, 29, ..., 96, 80, 60],\n",
- " [ 1, 98, 63, ..., 1, 73, 98],\n",
- " [77, 22, 88, ..., 6, 60, 7]],\n",
+ " [67, 50, 96, ..., 28, 89, 55],\n",
+ " [83, 98, 3, ..., 91, 25, 14],\n",
+ " [81, 7, 45, ..., 18, 78, 9]],\n",
"\n",
- " [[22, 40, 31, ..., 84, 62, 61],\n",
- " [27, 83, 95, ..., 81, 15, 54],\n",
- " [43, 45, 67, ..., 52, 2, 28],\n",
+ " [[29, 94, 53, ..., 3, 52, 47],\n",
+ " [93, 43, 11, ..., 94, 71, 37],\n",
+ " [80, 34, 29, ..., 12, 67, 48],\n",
" ...,\n",
- " [91, 75, 49, ..., 1, 76, 65],\n",
- " [ 4, 78, 43, ..., 82, 20, 95],\n",
- " [16, 65, 36, ..., 27, 92, 43]],\n",
+ " [31, 96, 58, ..., 71, 85, 90],\n",
+ " [72, 95, 55, ..., 83, 17, 97],\n",
+ " [72, 77, 15, ..., 42, 62, 9]],\n",
"\n",
- " [[11, 54, 89, ..., 64, 56, 78],\n",
- " [ 1, 29, 49, ..., 46, 22, 95],\n",
- " [99, 4, 33, ..., 89, 48, 60],\n",
+ " [[26, 76, 23, ..., 21, 92, 42],\n",
+ " [60, 80, 37, ..., 49, 91, 88],\n",
+ " [55, 64, 94, ..., 99, 91, 43],\n",
" ...,\n",
- " [18, 62, 84, ..., 12, 87, 52],\n",
- " [42, 79, 90, ..., 5, 24, 57],\n",
- " [51, 35, 71, ..., 55, 29, 11]]]]])\n",
+ " [80, 85, 15, ..., 23, 42, 52],\n",
+ " [66, 91, 73, ..., 10, 44, 22],\n",
+ " [75, 27, 89, ..., 37, 57, 20]]]]])\n",
"Coordinates:\n",
" * mode (mode) <U4 'car' 'bike' 'foot'\n",
" * day (day) datetime64[ns] 2015-01-01 2015-01-02 ... 2015-04-10\n",
" * time (time) int64 0 1 2 3 4 5 6 7 8 9 ... 15 16 17 18 19 20 21 22 23\n",
" * origin (origin) object MULTIPOLYGON (((-81.4727554321289 36.2343559...\n",
- " * destination (destination) object MULTIPOLYGON (((-81.4727554321289 36.23...<xarray.DataArray (mode: 3, day: 100, time: 24, origin: 100, destination: 100)>\n",
- "array([[[[[96, 29, 64, ..., 47, 80, 71],\n",
- " [79, 79, 96, ..., 92, 12, 90],\n",
- " [19, 85, 60, ..., 43, 28, 53],\n",
+ "array([[[[[47, 51, 75, ..., 15, 54, 82],\n",
+ " [ 7, 68, 76, ..., 38, 3, 72],\n",
+ " [50, 65, 16, ..., 53, 91, 15],\n",
" ...,\n",
- " [96, 8, 35, ..., 39, 7, 62],\n",
- " [82, 87, 18, ..., 1, 77, 38],\n",
- " [99, 94, 20, ..., 92, 16, 42]],\n",
+ " [30, 1, 15, ..., 6, 36, 46],\n",
+ " [19, 47, 3, ..., 75, 42, 69],\n",
+ " [48, 94, 34, ..., 47, 54, 86]],\n",
"\n",
- " [[79, 53, 28, ..., 30, 56, 14],\n",
- " [21, 88, 91, ..., 92, 73, 14],\n",
- " [74, 49, 88, ..., 30, 23, 28],\n",
+ " [[67, 5, 73, ..., 95, 34, 44],\n",
+ " [80, 22, 89, ..., 93, 5, 41],\n",
+ " [47, 70, 65, ..., 44, 82, 54],\n",
" ...,\n",
- " [56, 76, 91, ..., 36, 94, 16],\n",
- " [80, 83, 4, ..., 91, 38, 3],\n",
- " [69, 61, 10, ..., 79, 15, 94]],\n",
+ " [91, 33, 38, ..., 24, 40, 5],\n",
+ " [78, 49, 9, ..., 45, 3, 9],\n",
+ " [87, 73, 52, ..., 32, 58, 48]],\n",
"\n",
- " [[91, 22, 13, ..., 45, 31, 17],\n",
- " [86, 48, 23, ..., 88, 55, 94],\n",
- " [56, 8, 55, ..., 68, 15, 48],\n",
+ " [[22, 57, 42, ..., 24, 60, 1],\n",
+ " [ 4, 3, 94, ..., 66, 40, 17],\n",
+ " [87, 55, 87, ..., 41, 26, 55],\n",
" ...,\n",
"...\n",
" ...,\n",
- " [27, 8, 29, ..., 96, 80, 60],\n",
- " [ 1, 98, 63, ..., 1, 73, 98],\n",
- " [77, 22, 88, ..., 6, 60, 7]],\n",
+ " [67, 50, 96, ..., 28, 89, 55],\n",
+ " [83, 98, 3, ..., 91, 25, 14],\n",
+ " [81, 7, 45, ..., 18, 78, 9]],\n",
"\n",
- " [[22, 40, 31, ..., 84, 62, 61],\n",
- " [27, 83, 95, ..., 81, 15, 54],\n",
- " [43, 45, 67, ..., 52, 2, 28],\n",
+ " [[29, 94, 53, ..., 3, 52, 47],\n",
+ " [93, 43, 11, ..., 94, 71, 37],\n",
+ " [80, 34, 29, ..., 12, 67, 48],\n",
" ...,\n",
- " [91, 75, 49, ..., 1, 76, 65],\n",
- " [ 4, 78, 43, ..., 82, 20, 95],\n",
- " [16, 65, 36, ..., 27, 92, 43]],\n",
+ " [31, 96, 58, ..., 71, 85, 90],\n",
+ " [72, 95, 55, ..., 83, 17, 97],\n",
+ " [72, 77, 15, ..., 42, 62, 9]],\n",
"\n",
- " [[11, 54, 89, ..., 64, 56, 78],\n",
- " [ 1, 29, 49, ..., 46, 22, 95],\n",
- " [99, 4, 33, ..., 89, 48, 60],\n",
+ " [[26, 76, 23, ..., 21, 92, 42],\n",
+ " [60, 80, 37, ..., 49, 91, 88],\n",
+ " [55, 64, 94, ..., 99, 91, 43],\n",
" ...,\n",
- " [18, 62, 84, ..., 12, 87, 52],\n",
- " [42, 79, 90, ..., 5, 24, 57],\n",
- " [51, 35, 71, ..., 55, 29, 11]]]]])\n",
+ " [80, 85, 15, ..., 23, 42, 52],\n",
+ " [66, 91, 73, ..., 10, 44, 22],\n",
+ " [75, 27, 89, ..., 37, 57, 20]]]]])\n",
"Coordinates:\n",
" * mode (mode) <U4 'car' 'bike' 'foot'\n",
" * day (day) datetime64[ns] 2015-01-01 2015-01-02 ... 2015-04-10\n",
@@ -1519,48 +1530,48 @@
" * origin (origin) object MULTIPOLYGON (((-81.4727554321289 36.2343559...\n",
" * destination (destination) object MULTIPOLYGON (((-81.4727554321289 36.23...\n",
"Indexes:\n",
- " origin ShapelySTRTreeIndex\n",
- " destination ShapelySTRTreeIndex<xarray.DataArray (mode: 3, origin: 2, destination: 2)>\n", - "array([[[14, 88],\n", - " [ 9, 22]],\n", - "\n", - " [[99, 46],\n", - " [25, 62]],\n", - "\n", - " [[20, 54],\n", - " [44, 17]]])\n", - "Coordinates:\n", - " * mode (mode) <U4 'car' 'bike' 'foot'\n", - " day datetime64[ns] 2015-01-01\n", - " time int64 0\n", - " origin (origin) object MULTIPOLYGON (((-79.91995239257812 34.807918...\n", - " destination (destination) object MULTIPOLYGON (((-80.72651672363281 35.5..." - ], - "text/plain": [ - "
<xarray.DataArray (mode: 3, day: 100, time: 24, origin: 2, destination: 100)>\n",
+ "array([[[[[47, 51, 75, ..., 15, 54, 82],\n",
+ " [ 7, 61, 46, ..., 7, 65, 17]],\n",
"\n",
- ".xr-header {\n",
- " padding-top: 6px;\n",
- " padding-bottom: 6px;\n",
- " margin-bottom: 4px;\n",
- " border-bottom: solid 1px var(--xr-border-color);\n",
- "}\n",
+ " [[67, 5, 73, ..., 95, 34, 44],\n",
+ " [62, 80, 2, ..., 56, 38, 33]],\n",
"\n",
- ".xr-header > div,\n",
- ".xr-header > ul {\n",
- " display: inline;\n",
- " margin-top: 0;\n",
- " margin-bottom: 0;\n",
- "}\n",
+ " [[22, 57, 42, ..., 24, 60, 1],\n",
+ " [47, 3, 82, ..., 52, 56, 23]],\n",
"\n",
- ".xr-obj-type,\n",
- ".xr-array-name {\n",
- " margin-left: 2px;\n",
- " margin-right: 10px;\n",
- "}\n",
+ " ...,\n",
"\n",
- ".xr-obj-type {\n",
- " color: var(--xr-font-color2);\n",
- "}\n",
+ " [[ 6, 83, 84, ..., 50, 77, 13],\n",
+ " [66, 67, 24, ..., 60, 14, 91]],\n",
"\n",
- ".xr-sections {\n",
- " padding-left: 0 !important;\n",
- " display: grid;\n",
- " grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
- "}\n",
+ " [[55, 85, 99, ..., 28, 13, 39],\n",
+ " [76, 92, 33, ..., 18, 31, 75]],\n",
"\n",
- ".xr-section-item {\n",
- " display: contents;\n",
- "}\n",
+ " [[86, 47, 79, ..., 70, 99, 93],\n",
+ " [86, 87, 78, ..., 66, 26, 80]]],\n",
"\n",
- ".xr-section-item input {\n",
- " display: none;\n",
- "}\n",
+ "...\n",
"\n",
- ".xr-section-item input + label {\n",
- " color: var(--xr-disabled-color);\n",
- "}\n",
+ " [[[52, 34, 75, ..., 7, 84, 13],\n",
+ " [34, 11, 38, ..., 70, 89, 56]],\n",
"\n",
- ".xr-section-item input:enabled + label {\n",
- " cursor: pointer;\n",
- " color: var(--xr-font-color2);\n",
- "}\n",
+ " [[ 9, 52, 95, ..., 82, 89, 44],\n",
+ " [84, 94, 76, ..., 54, 34, 49]],\n",
"\n",
- ".xr-section-item input:enabled + label:hover {\n",
- " color: var(--xr-font-color0);\n",
- "}\n",
+ " [[ 9, 64, 85, ..., 28, 44, 22],\n",
+ " [15, 18, 14, ..., 47, 81, 18]],\n",
"\n",
- ".xr-section-summary {\n",
- " grid-column: 1;\n",
- " color: var(--xr-font-color2);\n",
- " font-weight: 500;\n",
- "}\n",
+ " ...,\n",
"\n",
- ".xr-section-summary > span {\n",
- " display: inline-block;\n",
- " padding-left: 0.5em;\n",
- "}\n",
+ " [[ 9, 82, 60, ..., 64, 56, 98],\n",
+ " [30, 70, 34, ..., 17, 34, 86]],\n",
"\n",
- ".xr-section-summary-in:disabled + label {\n",
- " color: var(--xr-font-color2);\n",
- "}\n",
+ " [[29, 94, 53, ..., 3, 52, 47],\n",
+ " [56, 99, 33, ..., 81, 88, 85]],\n",
"\n",
- ".xr-section-summary-in + label:before {\n",
- " display: inline-block;\n",
- " content: 'â–º';\n",
- " font-size: 11px;\n",
- " width: 15px;\n",
- " text-align: center;\n",
- "}\n",
+ " [[26, 76, 23, ..., 21, 92, 42],\n",
+ " [44, 47, 95, ..., 84, 5, 86]]]]])\n",
+ "Coordinates:\n",
+ " * mode (mode) <U4 'car' 'bike' 'foot'\n",
+ " * day (day) datetime64[ns] 2015-01-01 2015-01-02 ... 2015-04-10\n",
+ " * time (time) int64 0 1 2 3 4 5 6 7 8 9 ... 15 16 17 18 19 20 21 22 23\n",
+ " * origin (origin) object MULTIPOLYGON (((-81.4727554321289 36.2343559...\n",
+ " * destination (destination) object MULTIPOLYGON (((-81.4727554321289 36.23...\n",
+ "Indexes:\n",
+ " origin GeometryIndex (crs=EPSG:4267)\n",
+ " destination GeometryIndex (crs=EPSG:4267)"
+ ],
+ "text/plain": [
+ "<xarray.DataArray (mode: 3, origin: 2, destination: 2)>\n", + "array([[[47, 23],\n", + " [93, 84]],\n", + "\n", + " [[35, 46],\n", + " [18, 68]],\n", + "\n", + " [[62, 69],\n", + " [49, 32]]])\n", + "Coordinates:\n", + " * mode (mode) <U4 'car' 'bike' 'foot'\n", + " day datetime64[ns] 2015-01-01\n", + " time int64 0\n", + " * origin (origin) object MULTIPOLYGON (((-79.91995239257812 34.807918...\n", + " * destination (destination) object MULTIPOLYGON (((-80.72651672363281 35.5...\n", + "Indexes:\n", + " origin GeometryIndex (crs=EPSG:4267)\n", + " destination GeometryIndex (crs=EPSG:4267)" + ], + "text/plain": [ + "
<xarray.DataArray (mode: 3, day: 100, time: 24, origin: 41, destination: 100)>\n", + "array([[[[[77, 84, 80, ..., 31, 71, 18],\n", + " [30, 62, 58, ..., 26, 9, 61],\n", + " [96, 86, 84, ..., 31, 69, 57],\n", + " ...,\n", + " [98, 86, 56, ..., 94, 22, 75],\n", + " [85, 42, 89, ..., 23, 69, 10],\n", + " [98, 90, 56, ..., 35, 26, 39]],\n", + "\n", + " [[ 7, 45, 63, ..., 82, 61, 99],\n", + " [88, 96, 84, ..., 7, 87, 18],\n", + " [67, 72, 77, ..., 27, 54, 5],\n", + " ...,\n", + " [86, 52, 62, ..., 50, 51, 28],\n", + " [50, 8, 17, ..., 63, 93, 77],\n", + " [95, 50, 26, ..., 56, 85, 46]],\n", + "\n", + " [[27, 67, 87, ..., 88, 63, 37],\n", + " [27, 46, 96, ..., 26, 29, 10],\n", + " [60, 86, 15, ..., 9, 51, 29],\n", + " ...,\n", + "...\n", + " ...,\n", + " [86, 7, 13, ..., 66, 74, 38],\n", + " [59, 33, 37, ..., 85, 92, 18],\n", + " [90, 87, 39, ..., 15, 99, 71]],\n", + "\n", + " [[28, 62, 2, ..., 41, 2, 84],\n", + " [70, 99, 7, ..., 55, 28, 78],\n", + " [27, 78, 16, ..., 73, 89, 24],\n", + " ...,\n", + " [15, 80, 70, ..., 20, 12, 10],\n", + " [77, 7, 58, ..., 90, 12, 78],\n", + " [67, 89, 62, ..., 39, 8, 68]],\n", + "\n", + " [[87, 17, 38, ..., 41, 73, 36],\n", + " [58, 93, 31, ..., 13, 78, 28],\n", + " [30, 47, 25, ..., 92, 47, 74],\n", + " ...,\n", + " [12, 8, 60, ..., 86, 25, 44],\n", + " [88, 56, 41, ..., 39, 19, 93],\n", + " [29, 88, 17, ..., 54, 93, 57]]]]])\n", + "Coordinates:\n", + " * mode (mode) <U4 'car' 'bike' 'foot'\n", + " * day (day) datetime64[ns] 2015-01-01 2015-01-02 ... 2015-04-10\n", + " * time (time) int64 0 1 2 3 4 5 6 7 8 9 ... 15 16 17 18 19 20 21 22 23\n", + " * origin (origin) object MULTIPOLYGON (((-78.11376953125 34.720985412...\n", + " * destination (destination) object MULTIPOLYGON (((-81.4727554321289 36.23...\n", + "Indexes:\n", + " origin GeometryIndex (crs=EPSG:4267)\n", + " destination GeometryIndex (crs=EPSG:4267)" + ], + "text/plain": [ + "
<xarray.DataArray (mode: 3, day: 100, time: 24, origin: 41, destination: 100)>\n",
- "array([[[[[41, 61, 90, ..., 86, 69, 39],\n",
- " [38, 45, 93, ..., 95, 53, 80],\n",
- " [53, 31, 5, ..., 74, 48, 96],\n",
- " ...,\n",
- " [98, 48, 42, ..., 41, 81, 69],\n",
- " [87, 18, 10, ..., 97, 15, 33],\n",
- " [38, 68, 19, ..., 71, 9, 70]],\n",
+ "<xarray.DataArray (mode: 3, day: 100, time: 24, origin: 2, destination: 2)>\n",
+ "array([[[[[108, 164],\n",
+ " [ 6, 144]],\n",
+ "\n",
+ " [[ 68, 88],\n",
+ " [ 10, 82]],\n",
+ "\n",
+ " [[120, 2],\n",
+ " [ 80, 34]],\n",
+ "\n",
+ " ...,\n",
"\n",
- " [[30, 3, 51, ..., 60, 70, 6],\n",
- " [40, 3, 36, ..., 32, 22, 32],\n",
- " [74, 8, 25, ..., 91, 65, 71],\n",
- " ...,\n",
- " [72, 63, 10, ..., 54, 84, 63],\n",
- " [12, 77, 74, ..., 10, 30, 32],\n",
- " [27, 73, 36, ..., 63, 16, 57]],\n",
+ " [[154, 26],\n",
+ " [104, 94]],\n",
+ "\n",
+ " [[ 26, 78],\n",
+ " [ 8, 152]],\n",
+ "\n",
+ " [[198, 186],\n",
+ " [ 40, 114]]],\n",
"\n",
- " [[68, 46, 26, ..., 71, 71, 33],\n",
- " [21, 92, 65, ..., 94, 44, 88],\n",
- " [62, 13, 97, ..., 10, 42, 2],\n",
- " ...,\n",
"...\n",
- " ...,\n",
- " [53, 77, 85, ..., 9, 56, 44],\n",
- " [17, 72, 69, ..., 34, 63, 43],\n",
- " [17, 3, 1, ..., 40, 55, 74]],\n",
"\n",
- " [[ 1, 27, 55, ..., 74, 12, 45],\n",
- " [88, 31, 98, ..., 24, 4, 54],\n",
- " [25, 94, 82, ..., 44, 6, 42],\n",
- " ...,\n",
- " [97, 21, 97, ..., 25, 99, 15],\n",
- " [49, 44, 3, ..., 83, 13, 14],\n",
- " [57, 69, 97, ..., 27, 32, 77]],\n",
+ " [[[168, 26],\n",
+ " [ 78, 10]],\n",
"\n",
- " [[76, 34, 34, ..., 62, 81, 11],\n",
- " [59, 57, 36, ..., 86, 47, 48],\n",
- " [71, 58, 18, ..., 26, 33, 70],\n",
- " ...,\n",
- " [55, 9, 44, ..., 63, 60, 5],\n",
- " [44, 28, 3, ..., 61, 81, 9],\n",
- " [51, 19, 7, ..., 39, 92, 50]]]]])\n",
+ " [[178, 88],\n",
+ " [114, 20]],\n",
+ "\n",
+ " [[ 88, 44],\n",
+ " [192, 184]],\n",
+ "\n",
+ " ...,\n",
+ "\n",
+ " [[112, 196],\n",
+ " [168, 120]],\n",
+ "\n",
+ " [[104, 94],\n",
+ " [142, 74]],\n",
+ "\n",
+ " [[184, 84],\n",
+ " [182, 176]]]]])\n",
"Coordinates:\n",
" * mode (mode) <U4 'car' 'bike' 'foot'\n",
" * day (day) datetime64[ns] 2015-01-01 2015-01-02 ... 2015-04-10\n",
" * time (time) int64 0 1 2 3 4 5 6 7 8 9 ... 15 16 17 18 19 20 21 22 23\n",
- " origin (origin) object MULTIPOLYGON (((-78.11376953125 34.720985412...\n",
- " * destination (destination) object MULTIPOLYGON (((-81.4727554321289 36.23...\n",
+ " * origin (origin) object MULTIPOLYGON (((-81.4727554321289 36.2343559...\n",
+ " * destination (destination) object MULTIPOLYGON (((-77.96073150634766 34.1...\n",
"Indexes:\n",
- " destination ShapelySTRTreeIndex<xarray.DataArray (mode: 3, day: 100, time: 24, points: 2, destination: 100)>\n",
- "array([[[[[31, 69, 46, ..., 85, 87, 41],\n",
- " [63, 34, 15, ..., 62, 36, 23]],\n",
+ "<xarray.DataArray (mode: 3, day: 100, time: 24, origin: 4, destination: 100)>\n",
+ "array([[[[[47, 51, 75, ..., 15, 54, 82],\n",
+ " [ 7, 68, 76, ..., 38, 3, 72],\n",
+ " [19, 47, 3, ..., 75, 42, 69],\n",
+ " [48, 94, 34, ..., 47, 54, 86]],\n",
"\n",
- " [[79, 46, 26, ..., 75, 89, 12],\n",
- " [99, 67, 18, ..., 93, 63, 9]],\n",
+ " [[67, 5, 73, ..., 95, 34, 44],\n",
+ " [80, 22, 89, ..., 93, 5, 41],\n",
+ " [78, 49, 9, ..., 45, 3, 9],\n",
+ " [87, 73, 52, ..., 32, 58, 48]],\n",
"\n",
- " [[ 7, 22, 63, ..., 78, 89, 64],\n",
- " [60, 33, 13, ..., 39, 54, 33]],\n",
+ " [[22, 57, 42, ..., 24, 60, 1],\n",
+ " [ 4, 3, 94, ..., 66, 40, 17],\n",
+ " [81, 36, 30, ..., 5, 51, 6],\n",
+ " [54, 70, 25, ..., 30, 18, 37]],\n",
"\n",
" ...,\n",
"\n",
- " [[22, 59, 96, ..., 54, 84, 18],\n",
- " [39, 52, 31, ..., 40, 45, 43]],\n",
- "\n",
- " [[15, 37, 54, ..., 30, 2, 57],\n",
- " [29, 90, 1, ..., 60, 21, 29]],\n",
- "\n",
- " [[97, 47, 98, ..., 29, 76, 77],\n",
- " [43, 42, 23, ..., 68, 56, 42]]],\n",
- "\n",
+ " [[ 6, 83, 84, ..., 50, 77, 13],\n",
+ " [44, 84, 52, ..., 38, 52, 47],\n",
+ " [65, 26, 50, ..., 12, 21, 25],\n",
"...\n",
- "\n",
- " [[[53, 70, 33, ..., 6, 78, 35],\n",
- " [62, 58, 58, ..., 35, 88, 12]],\n",
- "\n",
- " [[27, 77, 3, ..., 62, 44, 34],\n",
- " [95, 88, 66, ..., 67, 63, 83]],\n",
- "\n",
- " [[43, 78, 66, ..., 22, 16, 56],\n",
- " [15, 82, 12, ..., 20, 26, 43]],\n",
+ " [44, 67, 26, ..., 29, 96, 92],\n",
+ " [38, 63, 87, ..., 32, 89, 62],\n",
+ " [ 1, 5, 28, ..., 88, 84, 58]],\n",
"\n",
" ...,\n",
"\n",
- " [[ 6, 65, 35, ..., 46, 17, 12],\n",
- " [21, 22, 69, ..., 45, 58, 11]],\n",
+ " [[ 9, 82, 60, ..., 64, 56, 98],\n",
+ " [79, 62, 12, ..., 47, 84, 60],\n",
+ " [83, 98, 3, ..., 91, 25, 14],\n",
+ " [81, 7, 45, ..., 18, 78, 9]],\n",
"\n",
- " [[75, 78, 24, ..., 13, 37, 66],\n",
- " [12, 90, 93, ..., 17, 52, 47]],\n",
+ " [[29, 94, 53, ..., 3, 52, 47],\n",
+ " [93, 43, 11, ..., 94, 71, 37],\n",
+ " [72, 95, 55, ..., 83, 17, 97],\n",
+ " [72, 77, 15, ..., 42, 62, 9]],\n",
"\n",
- " [[49, 62, 62, ..., 74, 70, 19],\n",
- " [32, 8, 19, ..., 79, 16, 87]]]]])\n",
+ " [[26, 76, 23, ..., 21, 92, 42],\n",
+ " [60, 80, 37, ..., 49, 91, 88],\n",
+ " [66, 91, 73, ..., 10, 44, 22],\n",
+ " [75, 27, 89, ..., 37, 57, 20]]]]])\n",
"Coordinates:\n",
" * mode (mode) <U4 'car' 'bike' 'foot'\n",
" * day (day) datetime64[ns] 2015-01-01 2015-01-02 ... 2015-04-10\n",
" * time (time) int64 0 1 2 3 4 5 6 7 8 9 ... 15 16 17 18 19 20 21 22 23\n",
- " origin (points) object MULTIPOLYGON (((-79.91995239257812 34.807918...\n",
+ " * origin (origin) object MULTIPOLYGON (((-81.4727554321289 36.2343559...\n",
" * destination (destination) object MULTIPOLYGON (((-81.4727554321289 36.23...\n",
- "Dimensions without coordinates: points\n",
"Indexes:\n",
- " destination ShapelySTRTreeIndex