From 73399b692bc59e9000976b3eb93d43bfdb93473f Mon Sep 17 00:00:00 2001 From: Erik van Onselen Date: Wed, 4 Dec 2024 16:54:32 +0100 Subject: [PATCH] Added content to data structures user guide --- docs/_static/object_hierarchy.png | Bin 0 -> 92878 bytes docs/_static/object_hierarchy_models.png | Bin 0 -> 70785 bytes docs/user_guide/data_structures.ipynb | 791 +++++++++++++++++++++++ docs/user_guide/data_structures.md | 2 - 4 files changed, 791 insertions(+), 2 deletions(-) create mode 100644 docs/_static/object_hierarchy.png create mode 100644 docs/_static/object_hierarchy_models.png create mode 100644 docs/user_guide/data_structures.ipynb delete mode 100644 docs/user_guide/data_structures.md diff --git a/docs/_static/object_hierarchy.png b/docs/_static/object_hierarchy.png new file mode 100644 index 0000000000000000000000000000000000000000..fa9eb99303f73c5ac32196dd7ce12c16549e626a GIT binary patch literal 92878 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 LqFDUUJm`M_CZTJB literal 0 HcmV?d00001 diff --git a/docs/_static/object_hierarchy_models.png b/docs/_static/object_hierarchy_models.png new file mode 100644 index 0000000000000000000000000000000000000000..c6b831678a5bb89969fd9a769e5e7a5457b248e5 GIT binary patch literal 70785 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\n", + " \"GeoST\n", + "

\n", + "\n", + "### Collection objects\n", + "Collection objects are composed of an instance of Header and Data. The collection provides\n", + "additional logic to maintain alignment between header and data. A collection object\n", + "inherits all methods that are provided both through the child header object and the child data\n", + "object. For example: you can access spatial selection methods (= header operations) as well as\n", + "data slicing methods (= data operations) directly from the collection. It is recommended to\n", + "work with collections by default, unless you specifically need only header or data functionality.\n", + "\n", + "GeoST currently offers the following collection classes:\n", + "\n", + "* *[`BoreholeCollection`](../api_reference/borehole_collection.rst)*: A collection of borehole data, composed of [`PointHeader`](../api_reference/point_header.rst) and [`LayeredData`](../api_reference/layered_data.rst).\n", + "* *[`CptCollection`](../api_reference/cpt_collection.rst)*: A collection of cone penetration test data, composed of [`PointHeader`](../api_reference/point_header.rst) and [`DiscreteData`](../api_reference/discrete_data.rst).\n", + "\n", + "By default, read functions for point/line data return a collection (see: [Reading data](./reading_data.ipynb)). \n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "BoreholeCollection:\n", + "# header = 67\n" + ] + } + ], + "source": [ + "import geost\n", + "\n", + "# Load the Utrecht Science Park example borehole data\n", + "boreholes_collection = geost.data.boreholes_usp()\n", + "\n", + "# boreholes_collection is an instance of BoreholeCollection and contains 67 boreholes\n", + "print(boreholes_collection)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Header objects\n", + "GeoST header objects are built on top of a [`Geopandas.Geodataframe`](https://geopandas.org/en/stable/docs/reference/api/geopandas.GeoDataFrame.html)\n", + "to hold data, including point geometries ([`PointHeader`](../api_reference/point_header.rst))\n", + "or linestring geometries ([`LineHeader`](../api_reference/line_header.rst)). The Geodataframe \n", + "is the attribute named `gdf` within a header object. Each entry (row in the Geodataframe) \n", + "corresponds to one point or line survey, e.g. one borehole or one seismic line. GeoST \n", + "header objects offer built-in methods for changing horizontal and vertical reference \n", + "systems, selecting data based on spatial conditions, export of table data and export of \n", + "geometries for viewing header data in GIS.\n", + "\n", + "A [`PointHeader`](../api_reference/point_header.rst) requires a bare minimum of data\n", + "columns to describe the data and to ensure that all built-in methods can be applied:\n", + "\n", + "| Column name | Validation criteria | Description |\n", + "| ----------- | ------------------- | ----------- |\n", + "| nr | Must be interpretable as string | Identification name/number/code of the point survey |\n", + "| x | Must be of numeric type (int or float) | X-coordinate |\n", + "| y | Must be of numeric type (int or float) | Y-coordinate |\n", + "| surface | Must be of numeric type (int or float) and higher than end depth | Surface elevation of the point survey in m |\n", + "| end | Must be of numeric type (int or float) and lower than surface elevation | End depth of the point survey in m |\n", + "| geometry | Must be of type `shapely.geometry.Point` | Point geometry of the survey location |\n", + "\n", + "The header is not limited to just these columns. Any number of columns can be added to give\n", + "additional information on surveys. Some built-in analysis methods may even add information\n", + "to the header. For instance, the method [`PointHeader.get_area_labels`](../api_reference/generated/geost.base.PointHeader.get_area_labels.rst)\n", + "has an argument `include_in_header` which, if set to true, adds a column with results\n", + "to the header Geodataframe.\n", + "\n", + "If you're only interested in survey locations and/or metadata, it is adviced to directly\n", + "work with the header object to avoid additional overhead caused by a parent collection \n", + "object (overhead is caused by checks of the header against data after every operation to \n", + "ensure header/data alignment). Read functions for point and line data (see: [Reading data](./reading_data.ipynb))\n", + "return a corresponding collection object by default, but you can assign only the header to \n", + "a variable in order to continue with just the header data. See the example below." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "EPSG:28992\n", + "EPSG:5709\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
nrxysurfaceendgeometry
0B31H05411395854560001.20-9.90POINT (139585 456000)
1B31H06111396004550601.20-23.00POINT (139600 455060)
2B31H07181399504552001.30-271.20POINT (139950 455200)
3B31H08031396754550872.16-4.84POINT (139675 455087)
4B31H08061396844553841.00-49.50POINT (139684 455384)
\n", + "
" + ], + "text/plain": [ + " nr x y surface end geometry\n", + "0 B31H0541 139585 456000 1.20 -9.90 POINT (139585 456000)\n", + "1 B31H0611 139600 455060 1.20 -23.00 POINT (139600 455060)\n", + "2 B31H0718 139950 455200 1.30 -271.20 POINT (139950 455200)\n", + "3 B31H0803 139675 455087 2.16 -4.84 POINT (139675 455087)\n", + "4 B31H0806 139684 455384 1.00 -49.50 POINT (139684 455384)" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Load the Utrecht Science Park example borehole data and only assign the header data.\n", + "boreholes_header = geost.data.boreholes_usp().header\n", + "\n", + "# Print horizontal and vertical reference system properties and the first few rows of\n", + "# the boreholes header data.\n", + "print(boreholes_header.horizontal_reference)\n", + "print(boreholes_header.vertical_reference)\n", + "boreholes_header.gdf.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Data objects\n", + "GeoST data objects are built on top of a [`Pandas.DataFrames`](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html) \n", + "to store data. The actual dataframe is named `df` within a data object. Each entry (row)\n", + "in the data represents a single layer (in case of [`LayeredData`](../api_reference/layered_data.rst))\n", + "bounded by a top and a bottom or a single measurement (in case of [`DiscreteData`](../api_reference/discrete_data.rst))\n", + "at a certain depth. One point or line survey (i.e. one row in the header) can be associated\n", + "with multiple rows of data. E.g. a single borehole with 10 described layers is represented\n", + "by one row in the header Geodataframe and ten rows in the data DataFrame. GeoST \n", + "data objects offer built-in methods for conditional selections, slicing, basic\n", + "analysis and data export.\n", + "\n", + "An instance of [`LayeredData`](../api_reference/layered_data.rst) requires a bare minimum of data\n", + "columns to describe the data and to ensure that all built-in methods can be applied:\n", + "\n", + "| Column name | Validation criteria | Description |\n", + "| ----------- | ------------------- | ----------- |\n", + "| nr | Must be interpretable as string | Identification name/number/code of the point survey |\n", + "| x | Must be of numeric type (int or float) | X-coordinate |\n", + "| y | Must be of numeric type (int or float) | Y-coordinate |\n", + "| x_bot | Must be of numeric type (int or float) | X-coordinate of layer bottom (only required if survey does not point straight down) |\n", + "| y_bot | Must be of numeric type (int or float) | X-coordinate of layer bottom (only required if survey does not point straight down) |\n", + "| surface | Must be of numeric type (int or float) and higher than end depth | Surface elevation of the point survey in m |\n", + "| end | Must be of numeric type (int or float) and lower than surface elevation | End depth of the point survey in m |\n", + "| top | Must be of numeric type (int or float); starts at 0; is increasing | Elevation of layer top. The first layer always starts at 0 and increases downwards |\n", + "| bottom | Must be of numeric type (int or float); is larger than top; is increasing | Elevation of layer bottom |\n", + "\n", + "An instance of [`DiscreteData`](../api_reference/discrete_data.rst) requires a bare minimum of data\n", + "columns to describe the data and to ensure that all built-in methods can be applied:\n", + "\n", + "| Column name | Validation criteria | Description |\n", + "| ----------- | ------------------- | ----------- |\n", + "| nr | Must be interpretable as string | Identification name/number/code of the point survey |\n", + "| x | Must be of numeric type (int or float) | X-coordinate |\n", + "| y | Must be of numeric type (int or float) | Y-coordinate |\n", + "| surface | Must be of numeric type (int or float) and higher than end depth | Surface elevation of the point survey in m |\n", + "| end | Must be of numeric type (int or float) and lower than surface elevation | End depth of the point survey in m |\n", + "| depth | Must be of numeric type (int or float); is increasing | Depth where the measurement was taken |\n", + "\n", + "All other columns contain the actual data with measurements for each layer or at each depth.\n", + "\n", + "If you're only interested in the measurements and don't need to work with geometries or\n", + "any other additional header data, it is adviced to directly work with the data object to \n", + "avoid additional overhead caused by a parent collection object (overhead is caused by \n", + "checks of the header against data after every operation to ensure header/data alignment). \n", + "Read functions for point and line data (see: [Reading data](./reading_data.ipynb))\n", + "return a corresponding collection object by default, but you can assign only the data object to \n", + "a variable in order to continue with just the data. See the example below. Some\n", + "read functions, such as [`read_borehole_table`](../api_reference/generated/geost.read_borehole_table.rst)\n", + "provide the argument `as_collection` which defaults to True, but can be set to False to\n", + "only return the [`LayeredData`](../api_reference/layered_data.rst) object in this example." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
nrxysurfaceendtopbottomlithzmzmk...conscolorlutum_pctplantsshellskleibrokjesstrat_1975strat_2003strat_interdesc
0B31H05411395854560001.2-9.90.000.20KNaNNone...NoneONNaN000NoneECNaN[TEELAARDE#***#****#*] ..........................
1B31H05411395854560001.2-9.90.200.60KNaNNone...NoneBRNaN000NoneECNaN[KLEI#***#****#*] grysbruin.
2B31H05411395854560001.2-9.90.600.95VNaNNone...NoneBRNaN000NoneNINaN[VEEN#***#****#*] donkerbruin.
3B31H05411395854560001.2-9.90.952.80ZNaNZMFO...NoneGRNaN000NoneECNaN[ZAND#***#****#*] FYN TOT matig fyn# iets slib...
4B31H05411395854560001.2-9.92.804.20ZNaNZFC...NoneBRNaN000NoneBXWINaN[ZAND#***#****#*] fyn# grysbruin.
\n", + "

5 rows × 32 columns

\n", + "
" + ], + "text/plain": [ + " nr x y surface end top bottom lith zm zmk ... \\\n", + "0 B31H0541 139585 456000 1.2 -9.9 0.00 0.20 K NaN None ... \n", + "1 B31H0541 139585 456000 1.2 -9.9 0.20 0.60 K NaN None ... \n", + "2 B31H0541 139585 456000 1.2 -9.9 0.60 0.95 V NaN None ... \n", + "3 B31H0541 139585 456000 1.2 -9.9 0.95 2.80 Z NaN ZMFO ... \n", + "4 B31H0541 139585 456000 1.2 -9.9 2.80 4.20 Z NaN ZFC ... \n", + "\n", + " cons color lutum_pct plants shells kleibrokjes strat_1975 strat_2003 \\\n", + "0 None ON NaN 0 0 0 None EC \n", + "1 None BR NaN 0 0 0 None EC \n", + "2 None BR NaN 0 0 0 None NI \n", + "3 None GR NaN 0 0 0 None EC \n", + "4 None BR NaN 0 0 0 None BXWI \n", + "\n", + " strat_inter desc \n", + "0 NaN [TEELAARDE#***#****#*] .......................... \n", + "1 NaN [KLEI#***#****#*] grysbruin. \n", + "2 NaN [VEEN#***#****#*] donkerbruin. \n", + "3 NaN [ZAND#***#****#*] FYN TOT matig fyn# iets slib... \n", + "4 NaN [ZAND#***#****#*] fyn# grysbruin. \n", + "\n", + "[5 rows x 32 columns]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Load the Utrecht Science Park example borehole data and only assign the data.\n", + "boreholes_data = geost.data.boreholes_usp().data\n", + "\n", + "# Print the first few rows of boreholes data.\n", + "boreholes_data.df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
nrxyvertical_datumsurfacecone_penetration_test_fkcone_penetration_test_result_pkpenetration_lengthdepthelapsed_time...magnetic_inclinationmagnetic_declinationlocal_frictionpore_ratiotemperaturepore_pressure_u1pore_pressure_u2pore_pressure_u3friction_ratioend
0CPT000000009626140950.998794455358.997741NAP2.09579116908820.2NaNNaN...NoneNoneNaNNoneNoneNoneNaNNoneNaN0
1CPT000000009626140950.998794455358.997741NAP2.09579116908830.3NaNNaN...NoneNoneNaNNoneNoneNoneNaNNoneNaN0
2CPT000000009626140950.998794455358.997741NAP2.09579116908840.4NaNNaN...NoneNoneNaNNoneNoneNoneNaNNoneNaN0
3CPT000000009626140950.998794455358.997741NAP2.09579116908850.5NaNNaN...NoneNoneNaNNoneNoneNoneNaNNoneNaN0
4CPT000000009626140950.998794455358.997741NAP2.09579116908860.6NaNNaN...NoneNoneNaNNoneNoneNoneNaNNoneNaN0
\n", + "

5 rows × 33 columns

\n", + "
" + ], + "text/plain": [ + " nr x y vertical_datum surface \\\n", + "0 CPT000000009626 140950.998794 455358.997741 NAP 2.0 \n", + "1 CPT000000009626 140950.998794 455358.997741 NAP 2.0 \n", + "2 CPT000000009626 140950.998794 455358.997741 NAP 2.0 \n", + "3 CPT000000009626 140950.998794 455358.997741 NAP 2.0 \n", + "4 CPT000000009626 140950.998794 455358.997741 NAP 2.0 \n", + "\n", + " cone_penetration_test_fk cone_penetration_test_result_pk \\\n", + "0 9579 11690882 \n", + "1 9579 11690883 \n", + "2 9579 11690884 \n", + "3 9579 11690885 \n", + "4 9579 11690886 \n", + "\n", + " penetration_length depth elapsed_time ... magnetic_inclination \\\n", + "0 0.2 NaN NaN ... None \n", + "1 0.3 NaN NaN ... None \n", + "2 0.4 NaN NaN ... None \n", + "3 0.5 NaN NaN ... None \n", + "4 0.6 NaN NaN ... None \n", + "\n", + " magnetic_declination local_friction pore_ratio temperature pore_pressure_u1 \\\n", + "0 None NaN None None None \n", + "1 None NaN None None None \n", + "2 None NaN None None None \n", + "3 None NaN None None None \n", + "4 None NaN None None None \n", + "\n", + " pore_pressure_u2 pore_pressure_u3 friction_ratio end \n", + "0 NaN None NaN 0 \n", + "1 NaN None NaN 0 \n", + "2 NaN None NaN 0 \n", + "3 NaN None NaN 0 \n", + "4 NaN None NaN 0 \n", + "\n", + "[5 rows x 33 columns]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Load the Utrecht Science Park example CPT data and only assign the data.\n", + "cpt_data = geost.data.cpts_usp().data\n", + "\n", + "# Print the first few rows of CPT data.\n", + "cpt_data.df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Model data\n", + "GeoST supports working with model data and offers methods to combine these data with\n", + "point and line data. Model data does not follow the same header/data approach as point\n", + "and line data. Instead there are generic model classes, of which some have an\n", + "implementation that adds specific functionality for that model. An example of this is\n", + "the [`VoxelModel`](../api_reference/voxelmodel.rst) as a generic model class and [`GeoTOP`](../api_reference/bro_geotop.rst)\n", + "being a specific implementation of a voxel model. GeoST currently support the following \n", + "generic models and implementations:\n", + "\n", + "**Generic models and implementations**\n", + "* *[`VoxelModel`](../api_reference/voxelmodel.rst)*: Class for voxel models, with data \n", + "stored in the `ds` attribute, an [`Xarray.Dataset`](https://docs.xarray.dev/en/stable/generated/xarray.Dataset.html).\n", + " * Implementations: [`GeoTOP`](../api_reference/bro_geotop.rst)\n", + "* *`LayerModel`*: Class for layer models, not yet implemented\n", + " * Implementations: None\n", + "\n", + "

\n", + " \"GeoST\n", + "

\n", + "\n", + "### Voxel models\n", + "The [`VoxelModel`](../api_reference/voxelmodel.rst) class stores data in the `ds` \n", + "attribute, which is an [`Xarray.Dataset`](https://docs.xarray.dev/en/stable/generated/xarray.Dataset.html).\n", + "A custom voxel model can be instantiated from a NetCDF file. For this, see the documentation of the \n", + "[`VoxelModel.from_netcdf`](../api_reference/generated/geost.models.VoxelModel.from_netcdf.rst) class constructor.\n", + "An instance of [`VoxelModel`](../api_reference/voxelmodel.rst) offers basic methods for \n", + "selecting, slicing and exporting models.\n", + "\n", + "For more guidance on using a Voxel model within GeoST, see the [user guide section\n", + "of its GeoTOP implementation](../user_guide/bro_geotop.ipynb).\n", + "\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "default", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/user_guide/data_structures.md b/docs/user_guide/data_structures.md deleted file mode 100644 index 59a33a7..0000000 --- a/docs/user_guide/data_structures.md +++ /dev/null @@ -1,2 +0,0 @@ -# Data structures -This describes the main data structures of GeoST \ No newline at end of file