by VIKTOR
Over the years, developers at VIKTOR have worked in several civil projects have seen the amount of time and energy that is wasted interpreting CPTs, creating 2D soil layouts, and setting up models. This isn’t fun work, so we decided to do something about it: We teamed up with geotechnical engineers across the industry to create the best set of tools to help you save time and make your geotechnical data more insightful. We call them: The GeoTools.
Of course, we want everyone to use and help improve GeoTools. That is why at the end of the article you will find a link to request free access.
In this video, you can see a demo of the GeoTools on the VIKTOR platform.
As the size of civil engineering projects grows and the amount of available data continuous to increase, the average geotechnical engineer is expected to do even more number-crunching on soil data. They must provide an increasingly accurate interpretation of the soil layout and everything that is necessary to perform detailed analysis on foundations, settlements, or other geotechnical projects. However, not every civil engineering project requires the same processes to follow or the same type of soil interpretation. Since most of these tasks are everyday things, a custom application that solves one task very well isn’t required. However, it would be very useful to have something that can save the geotechnical engineer a lot of time from day one.
The GeoTools application is a compilation of several geotechnical tools, functionalities, and digital buildings blocks that can be used in the daily work of any geotechnical engineer. The soil datasets that are at the core of every geotechnical analysis are centralized in the VIKTOR platform, where GeoTools is also hosted. The application provides a variety of tools to reduce the amount of repetitive work for the engineer while also improving their insights based on the ever-expanding datasets. The GeoTools app provides numerous of tools related to:
Continue reading to learn more about how why we have chosen to create the GeoTools as they are, what tools are implemented, which are still to come, and how they are offered to geotechnical engineers.
To create an app that helps any geotechnical engineer in their day-to-day work, we needed an overview of the most frequently performed tasks. For this, we contacted many different geotechnical engineers from many different of our existing clients individually to gather their feedback and gain more insight into their daily jobs.
The First Minimum Viable Product was released exclusively to these geotechnical engineers and contained an initial set of tools. To promote transparency, enable sharing feedback, and viewing possibilities of the app from different perspectives, all engineers from different companies were given access to the same app, sharing the same experience and the same data. This allowed them to not only experience how the app works, but also how fellow engineers were using it. The app contained a section where any used could leave feedback, upload screenshots, and provide new ideas and concepts for improvement. This enabled users to all be very involved in the development process; we work with geotechnical engineers, rather than for them.
Following the same philosophy, new versions are continuously released and tested. In addition, periodical feedback sessions are organized with geotechnical engineers to agree on upcoming developments to ensure real value for every geotechnical engineer. The GeoTools is the first app for which we have applied this philosophy, and with great success! Many more applications have already followed, and soon the VIKTOR App Store (see: demo environment) will be filled with a wide variety of applications created for engineers and developed by them!
If you have an idea for an application that you would like to have as part of the app store, or if you would like to develop an application (together with us), please contact us. We are happy to talk with you about all the possibilities!
Learn how you (developer, engineer, end-user, domain expert, project manager, etc.) can contribute to the creation of apps that provide real value to your work.
With the GeoTools, geotechnical engineers can manage, structure, and visualize geotechnical data to ensure availability, accessibility, easy classification and interpretation, and better insights.
The GeoTools provide a platform for uploading and storing soil data, in this case a Cone Pressure Test (CPT) dataset. This can be in the form of (the most used) GEF-files, but also as XML-files or even downloaded directly from the BRO database. This ensures that the soil data is centralized and available regardless of the format it is in. In addition, because GeoTools is a web-based app, you and all your colleagues can access the data you are working with always and from anywhere!
Another module within the GeoTools is about the classification and interpretation of CPT data. This module cleans and filters the data so that it can be used in subsequent analyses. Geotechnical engineers can select the type of classification method that is used. The different options are:
This filtered data is visualized so that geotechnical engineers can easily inspect it and update as needed.
The GeoTools also provides insights on an even higher level. The location of all CPTs can be shown in map or satellite view. From there, you can select multiple CPT datasets and compare them side-by-side (also see: open-source CPT comparison app) to see how the soil changes from one point to the next. By combining several CPT datasets, a 2- or 3D interpretation of the soil layers can automatically be calculated and visualized in an intuitive and interactive 2- or 3D plot. Additionally, geotechnical engineers can manually modify the automatically generated soil layouts if desired. These visualizations are helpful in many types of civil engineering projects, such as pile foundations, dykes and dams, or road construction.
GeoTools seamlessly integrates with several external software packages. This ensures you that the tedious steps required to set up a calculation in any of these software packages can be reduced to a single click of a button, which reduces time to set up a calculation from a couple of minutes down to a few seconds.
By integrating with one of the Deltares software packages, you can use the available soil data and interpolated profiles directly in several geotechnical analyses.
D-Settlement
The current version of the GeoTools application integrates the soil layout data with the D-Settlement, allowing users to quickly set up advanced soil settlement calculations.
D-Foundations
Exporting the soil latyout and properties to D-Foundations is also possible (see: Automation in D-Foundations for more in-depth information on how such an integration works).
Data integrated from Deltares software packages in the GeoTools
In the next update of the application, other software packages can be integrated, such as D-Stability, D-Sheetpiling and Plaxis.
Don’t hesitate to contact us to let us know which software packages you would like to integrate with, and why! If you think that the GeoTools can help you save time and better understand your geotechnical data, apply now for a demo account to try it out in the demo environment.
In this section, we will explain how you can program your own applications using the digital building blocks of the GeoTools. This is an advanced topic for those that know how to use Python. Feel free to go straight to the conclusion of this blog post if you feel like you have enough information now!
With a standard app like the GeoTools, there is no need to go through the process of developing a fully customized application. Clients don’t have to spend time building useful applications either; end users can start using the tool from day one. If you are interested in the full application, you can find it in the demo environment. More information on the all the technical functionalities of the full GeoTools application can be found here.
Fortunately, clients not only have access to a plug-and-play application that is suited to their every need, but they also have access to the source code of the app. This allows any engineer to add additional tooling to customize the GeoTools to their unique process, while having a solid foundation for the basic functionalities. Not only does this make the application extremely customizable, it also helps developers by providing a set of pre-assembled digital building blocks that they can inspect and re-use in different applications.
An example of the GEF building block, as well as a cross-section building block are provided in the Python code snippet below:
1from viktor.geo import GEFFile 2from viktor.geo import MapPoint 3from viktor.geo import SoilLayout 4from viktor.geo import RobertsonMethod 5 6class Project(ViktorController): 7 def get_gef_file(self): 8 “””Obtain a GEFFile object from the example GEF file””” 9 Return GEFFile.from_file(“Example.GEF”) 10 @View(‘Soil Layout’) 11 def visualize_soil_layout(self): 12 “””Visualize the Soil Layout in a View in the web-browser””” 13 gef_file = self.get_gef_file() 14 15 # Get Soil Layout by classifying GEF using the Robertson Method 16 soil_layout = gef_file.classify(RobertsonMethod(soil_properties)) 17 return soil_layout.get_visualization() 18 19 @View(‘Map’) 20 def visualize_gef_on_map(self): 21“””Visualize the GEF in a Map in the web-browser””” 22gef_file = self.get_gef_file() 23return MapPoint(gef_file.coordinates)
Each of the modules in the application’s source code is extensively documented and even published as a seperate 'sample application', so that any developer who looks under the application’s hood knows exactly what is going on and can quickly tweak the code to their personal needs.
Open-source Python code for the following modules is all hosted within the VIKTOR GitHub repository. Below are code snippets from the repositories of a couple of the functionality from GeoTools that are also offered as seperate sample application within the demo environment.
AHN elevation profiles
1@MapView(‘Map’, duration_guess=1)
2def get_map_view(self, params: Munch, **kwargs: dict) -> MapResult:
3 """Set the map view on which the line can be drawn for which the AHN values are wished to be known"""
4 features = []
5 if params.geo_polyline:
6 features.append(MapPolyline.from_geo_polyline(params.geo_polyline))
7return MapResult(features)
CPT comparison
1from viktor.geo import GEFFile
2
3@ParamsFromFile(file_types=['.gef'])
4def process_file(self, file: File, **kwargs) -> dict:
5 """Process the CPT file when it is first uploaded"""
6 cpt_file = GEFFile(file.getvalue("ISO-8859-1"))
7 return cpt_data_object.serialize()
CPT interpretation with Robertson
1def classify_cpt_file(cpt_file: GEFFile) -> dict:
2 """Classify an uploaded CPT File based on the selected _ClassificationMethod"""
3 try:
4 # Parse the GEF file content
5 cpt_data_object = cpt_file.parse(additional_columns=ADDITIONAL_COLUMNS, return_gef_data_obj=True)
6 ground_water_level = get_water_level(cpt_data_object)
7
8 # Classify the CPTData object to get a SoilLayout
9 soil_layout_obj = cpt_data_object.classify(method=RobertsonMethod(DEFAULT_ROBERTSON_TABLE),
10 return_soil_layout_obj=True)
11
12 except GEFParsingException as parsing_exception:
13 raise UserException(f"CPT Parsing: {str(parsing_exception)}") from parsing_exception
14 except GEFClassificationError as classification_exception:
15 raise UserException(f"CPT Classification: {str(classification_exception)}") from classification_exception
16
17 # Serialize the parsed CPT File content and update it with the new soil layout
18 cpt_dict = cpt_data_object.serialize()
19 cpt_dict['soil_layout'] = soil_layout_obj
20 cpt_dict["groundwater"] = ground_water_level
21 return cpt_dict
Continue reading here for an overview of all sample applications.
The GeoTools application has been developed for any geotechnical engineer who wants to speed up their daily process while increasing the amount of data they use to improve the accuracy of their models. They can reap the benefits from the moment they log in to the VIKTOR platform.
The VIKTOR platform ensures that the data required for the geotechnical calculations is all centralized in one single location. The centralized data is easy to link with many different software packages that a geotechnical engineer uses for in-depth analyses. The tools in the application will significantly reduce the time that is needed to spend on tedious day-to-day tasks. This opens many new possibilities for taking geotechnical engineering to the next level. Geotechnical engineers can now evaluate a great many different designs in an optimization scheme, reduce uncertainty in calculations by using more soil datasets, or simply take on bigger projects.
VIKTOR offers free access to a continuously growing collection of sample application, including the GeoTools including the GeoTools, through the demo environment. Applications range from functional tools that can be immediately be used for your own projects, to basic ‘template’ applications that contain the result of open-source Python code of specific functionality from our GitHub repository.
Apply for a demo account to test applications and experience working in a VIKTOR environment (together with your colleagues) that contains all your organizations apps.
Please let us know if you want to add a new digital building block to the GeoTools or to the App Store. Together we can improve the geotechnical community as a whole!
Other applications you might also find interesting:
Learn about trends in digital transformation and how they affect the engineering and construction industry.