[00:00.000 --> 00:24.160] So, we are ready for the second talk and yeah, I'm happy to have Joy here from SPP talking [00:24.160 --> 00:28.080] about very condition monitoring and how to do that with open source software. [00:28.080 --> 00:33.640] Hello everybody, happy to see that it's this crowded, I wasn't expecting that but I'm pleasantly [00:33.640 --> 00:34.640] surprised. [00:34.640 --> 00:41.120] So, I'm going to talk to you today from a very niche department of SBB which is measurement [00:41.120 --> 00:42.480] and diagnostics. [00:42.480 --> 00:48.280] We're basically part of the infrastructure like Eloy before, we're trying to maintain [00:48.280 --> 00:50.520] and run the infrastructure in Switzerland. [00:50.520 --> 00:56.040] It's not such a big country but a very dense train network, so the problems we face is [00:56.040 --> 01:04.080] basically that we have shallow train passing times and a lot of maintenance to do and to [01:04.080 --> 01:09.160] be able to do this maintenance at the right moment. [01:09.160 --> 01:16.320] We have the measurement and diagnostics department which I am part of and we basically have two [01:16.320 --> 01:20.360] major goals. [01:20.360 --> 01:25.880] One is to maintain the safety of the system and the other one is to put out a gather [01:25.880 --> 01:32.400] data of the infrastructure assets in order to be able to do predictive maintenance or [01:32.400 --> 01:37.440] maintenance at the right moment and just to make sure that the money spent is well spent [01:37.440 --> 01:46.720] in order that the assets can live the most long without breaking down. [01:46.720 --> 01:52.000] Here you can see two of our measurement trains, they're typically sensor based measurements, [01:52.000 --> 01:58.000] typically optically made measurements and we'll go a little bit deeper into that afterwards. [01:58.000 --> 02:03.680] Normally, I was planning to be here with one of my colleagues, Jean Chédéric, unfortunately [02:03.680 --> 02:09.760] he got sick, he catch the cold so I'm here alone but I thought I will still have his [02:09.760 --> 02:16.640] picture on a slide in case somebody is interested in what we're doing later on, you will know [02:16.640 --> 02:19.440] him by face at least. [02:19.440 --> 02:24.760] He's the guy who's doing a lot of the technical implementation, solving a lot of the technical [02:24.760 --> 02:36.280] problems and I'm more on the strategic part of the project and we'll leave it by that. [02:36.280 --> 02:42.920] Such a measurement from sensor to information is quite a long way so it's a very complex [02:42.920 --> 02:44.720] thing, such a measurement system. [02:44.720 --> 02:53.440] I've drawn here a couple of steps from beginning to end for track geometry measurement so [02:53.440 --> 02:57.960] as I said before most of them are optical by now so what you actually do is you have [02:57.960 --> 03:02.880] a laser plane that shines on your track and then you have a camera that makes a photo [03:02.880 --> 03:11.560] and the first picture is basically a digital photo of the rail and then you extract this [03:11.560 --> 03:16.960] contrast change and you do a lot of software and you get the second photo which is a half [03:16.960 --> 03:19.000] profile of your rail. [03:19.000 --> 03:22.400] Then you do the same thing for the second half of your rail and you get a full profile [03:22.400 --> 03:28.680] and you start measuring on it and you do for instance, it may be a bit difficult to see [03:28.680 --> 03:33.320] but there's a lot of little crosses on the profile and those are the points that you're [03:33.320 --> 03:41.400] interested in, the top of your rail or there's 1.14 mm below the top of your rail and from [03:41.400 --> 03:46.960] this, if you have both rails, you can deduce your track geometry, in instance the gauge [03:46.960 --> 03:54.080] and the, louder, okay, I will talk louder. [03:54.080 --> 04:00.400] You will have the possibility to deduce the gauge or the elevation or the longitudinal [04:00.400 --> 04:07.640] levels of your tracks and you can then print them in form of the fourth picture like as [04:07.640 --> 04:16.400] 1D plots and afterwards you've gathered this information, you have to deduce what to do [04:16.400 --> 04:17.400] with it. [04:17.400 --> 04:25.200] So in SBB and I think in a lot of other countries in Europe now too, you try to do analysis [04:25.200 --> 04:31.920] over time to see how the track geometry or other parameters in your railway system change [04:31.920 --> 04:40.560] over time and find critical passes to where you know in some time in the future that asset [04:40.560 --> 04:45.240] will break and then you can do maintenance in the right moment and assure that it won't [04:45.240 --> 04:50.880] break or that it stays safe a little bit longer or you can deduce, oh, I'm too late, I have [04:50.880 --> 05:01.560] to change that and RCM, our software suit that we built ourselves is basically an acronym [05:01.560 --> 05:09.760] for rail condition monitoring saying this whole first part of the value chain here up [05:09.760 --> 05:19.800] to the fourth picture and we try to automate that and to make it a bit more generic and [05:19.800 --> 05:27.240] we're currently trying to do that with the now shown architecture so we have the measurement [05:27.240 --> 05:33.640] platform on the left side, it gets from the administrative tools for instance topology [05:33.640 --> 05:38.680] like to know what kind of tracks exist in Switzerland. [05:38.680 --> 05:43.680] We've talked yesterday with Infrabel, it's quite similar and I've also talked to people [05:43.680 --> 05:50.680] from SNCF, I've also talked to people from Network Rail at the end, you need a topology [05:50.680 --> 06:00.680] to put your measurement data to an asset to a certain location in the physical world [06:00.680 --> 06:05.640] and while before I was not sure, before we started with this project, I was not sure [06:05.640 --> 06:11.120] if this will be a big problem if the topologies will be vastly different from country to country [06:11.120 --> 06:17.600] but at the end since the requirements are very similar from country to country, I came [06:17.600 --> 06:23.400] to observe that the solutions that came up are also very similar and I do believe that [06:23.400 --> 06:31.160] it's possible to have a generic topology description between countries and this will be, we'll [06:31.160 --> 06:39.680] see later on, a bit crucial for this project to work in different countries. [06:39.680 --> 06:48.280] Once we get the measurement on the measurement platform, we have this automated data cleansing [06:48.280 --> 06:54.560] and quality control processing platform and basically the first thing is the positioning [06:54.560 --> 06:58.880] as I said before that would be to tie the measurement to a physical location on your [06:58.880 --> 07:04.560] topology and the second thing that we do is a conversion, so whatever comes into one [07:04.560 --> 07:10.760] of those measurement, whatever comes from one of those measurement platforms, one of [07:10.760 --> 07:17.480] those measurement trains, we convert it into our open data format and this is the first [07:17.480 --> 07:26.400] thing I would like to talk to you about, how do you, how do you say that, we'll talk about [07:26.400 --> 07:28.520] a bit more detail afterwards. [07:28.520 --> 07:35.240] Once we have it in an open format, we do a standardization like the different measurement [07:35.240 --> 07:41.680] systems provide the same measurement in different flavors, let's say the gauge once come in [07:41.680 --> 07:49.520] an absolute number, 1.35 meters, the second system shows it as a deviation from zero, [07:49.520 --> 07:53.640] one shows it in meters, one shows it in millimeters, you have to standardize that a little bit [07:53.640 --> 07:56.440] in order to be able to compare it afterwards. [07:56.440 --> 08:02.120] We do a consistency check and then we do a persistence and once we persist that data, [08:02.120 --> 08:09.160] we have at least in Switzerland regulations to follow, especially on the duration and [08:09.160 --> 08:14.000] on the capacity to be able to read the data again in the future. [08:14.000 --> 08:20.480] In Switzerland this is about 15 years, so if we do a measurement we have to be, to guarantee [08:20.480 --> 08:27.960] that for the next 15 years we are able not only to show the measurement but also to open [08:27.960 --> 08:34.520] it and to read the data and this again something that is much easier to do if you have an open [08:34.520 --> 08:40.960] data format which is not proprietary, which is not tied to a specific software or a specific [08:40.960 --> 08:47.000] software version that you have to maintain too. [08:47.000 --> 08:54.240] Then it goes to the presentation layer and the presentation layer typically can be various [08:54.240 --> 08:55.680] different programs. [08:55.680 --> 09:02.040] In our case in Switzerland we use IRISIS from Ertman in Germany, I think there's a couple [09:02.040 --> 09:07.680] of other countries in Europe that do that too, but we also use our own viewing software [09:07.680 --> 09:12.400] which we call RCM Viewer, which will be the second part of the open source project I would [09:12.400 --> 09:20.560] like to talk about and which can show obviously the open data format that we use. [09:20.560 --> 09:28.320] Once this data is gathered, typically now if you buy a system on the market there are [09:28.320 --> 09:35.000] different enterprises that sell such systems, for instance MIRMC in southern Italy or Placer [09:35.000 --> 09:41.240] Anteuter from Austria, which are two of the biggest players also, there's ENSCO in the [09:41.240 --> 09:46.560] United States, you get a proprietary format from them. [09:46.560 --> 09:52.920] You may or may not be able to read it depending on how your contract is, so I know SNCF had [09:52.920 --> 10:00.960] had in the past some problems with that that the contract did not state that you are allowed [10:00.960 --> 10:07.520] to actually know the data format, your data comes to you and once you figured that out [10:07.520 --> 10:13.480] and that you are able to read it, you will free yourself from the use of the software [10:13.480 --> 10:18.960] that they impose on you if they sell you the measurement system, and we've done that in [10:18.960 --> 10:24.280] Switzerland over the last years, we've had the same issues, don't worry, and are now [10:24.280 --> 10:29.600] at a point where all our measurement systems are either directly delivering an open data [10:29.600 --> 10:37.480] format or at least that we have full specification of the data format that is delivered to us [10:37.480 --> 10:46.920] in binary, and we're now trying to transpose that into our open format. [10:46.920 --> 10:54.480] For that, with the last measurement train that we acquired, we specified such a format [10:54.480 --> 11:03.040] based on an open standard which is HDF5, hierarchical data format 5, you can find it online, it exists [11:03.040 --> 11:08.040] since, I think, 20 years, it's widely used in the academic world, it's also the base [11:08.040 --> 11:14.400] of matlaps.m files, for instance, and it has the advantage that most programming languages [11:14.400 --> 11:23.400] and most measurement data programs like R or DADM or others that are out there already [11:23.400 --> 11:26.600] have stops or libraries to read it. [11:26.600 --> 11:36.560] So with data themselves, HDF5 themselves says their key features and advantages are metadata [11:36.560 --> 11:42.840] with data, fast IO, big data, and the other stuff that you can read here, and what we [11:42.840 --> 11:50.920] try to do is to write a specification upon the HDF5 that is specific for railway data, [11:50.920 --> 11:56.760] that generic enough that it can handle all type of measurement systems. [11:56.760 --> 12:02.720] Basically, you have the advantages of HDF5, and on the same time, the possibility if you [12:02.720 --> 12:10.840] follow this specification that we wrote that then you can find on GitHub that a software [12:10.840 --> 12:16.280] like the one that we built can read it whatever your measurement systems are, if you buy it [12:16.280 --> 12:21.560] from Merrimick, if you buy it from Placer Interior, if it's track geometry, or if it's, [12:21.560 --> 12:27.080] I don't know, from Sperry ultrasonic measurements or whatever else is out there, as long as [12:27.080 --> 12:32.200] you follow the specification, you can use the software to display it, you can use the [12:32.200 --> 12:37.520] software to overlay it, and so on. [12:37.520 --> 12:46.000] We named it RCMDX, Rail Condition Monitoring Data Exchange, and our key features for it [12:46.000 --> 12:53.640] is that it includes the metadata like configuration, but also the topology, and it makes it completely [12:53.640 --> 12:54.800] self-contained. [12:54.800 --> 13:01.520] So in 15 years, you take one file, you do not need anything else than the file itself [13:01.520 --> 13:07.120] and the specification of the data to be able to reproduce a view of the data. [13:07.120 --> 13:16.000] So on the track, in the system as it was in the moment that the data was gathered, and [13:16.000 --> 13:17.880] I think this helps a lot. [13:17.880 --> 13:23.360] And as I said before, it's accessible through the standard HDF5 tools, so you can download [13:23.360 --> 13:27.720] an HDF5 library from their website and directly access the data. [13:27.720 --> 13:33.880] You can also build your own using the programming language, Python has a stop, and Java, and [13:33.880 --> 13:36.840] C++ and Csharp also. [13:36.840 --> 13:42.520] And on the other side, you still have the genericity in order to use whatever measurement [13:42.520 --> 13:44.600] system you want. [13:44.600 --> 13:53.000] And let's see, like one of the benefits that you would get if you decide to use such a [13:53.000 --> 13:54.000] thing. [13:54.000 --> 14:00.000] For us, one of the main benefits is that you could, if it gets adopted by more than one [14:00.000 --> 14:06.960] country, let's say, you get the advantage that in an open tender where you have to specify [14:06.960 --> 14:15.000] what you want to buy, you can handle the whole data part with just one single phrase. [14:15.000 --> 14:19.520] Please deliver the data in this specification, you can find it on GitHub. [14:19.520 --> 14:29.560] As soon as more than one tender writes it inside, I think it's basically close to a standard [14:29.560 --> 14:31.840] because this market is very small. [14:31.840 --> 14:41.040] The companies that I told you before are basically covering over 80% of the whole market. [14:41.040 --> 14:48.120] So as soon as they start to see that it is necessary to deliver their data in this format, [14:48.120 --> 14:50.120] you can get it for free. [14:50.120 --> 14:58.040] I think it's quite a big advantage that could be resulting out of using that. [14:58.040 --> 15:02.000] And of course, then as a result, you have a complete open data. [15:02.000 --> 15:09.200] We will see now, I'm switching from the data format to the viewing software. [15:09.200 --> 15:18.720] And this also is available already as freeware and will be in future as open source. [15:18.720 --> 15:24.680] And once you have your data in the RCMDX format, as soon as you follow the specification, [15:24.680 --> 15:27.640] you can basically use the software to display it. [15:27.640 --> 15:34.800] It's highly generic in the case that everything that you see now here is a workspace that [15:34.800 --> 15:37.960] can be easily configured by the user. [15:37.960 --> 15:42.640] So you can drag and drop every little window inside that workspace, put it somewhere else. [15:42.640 --> 15:45.480] You can configure it to show whatever data you want. [15:45.480 --> 15:47.920] You can change the parameters that are shown. [15:47.920 --> 15:49.880] You can change the boundaries that are shown. [15:49.880 --> 15:55.040] You can change the limits that you want to display. [15:55.040 --> 16:01.920] And you can show in parallel and synchrony in time, in space, and also on your topology [16:01.920 --> 16:03.440] different measurement systems. [16:03.440 --> 16:08.320] So you can show data from the track geometry system together with video data, together with [16:08.320 --> 16:16.840] optical data, together with ultrasonic data, whatever you think might benefit you the most. [16:16.840 --> 16:22.800] You can easily do it very complicated, or you can try to build new views that are less [16:22.800 --> 16:29.680] generic for an end user, for instance, for a maintenance manager, if you have to do a [16:29.680 --> 16:38.480] specific job, like in our case, the lower right part, like this part with optical data, [16:38.480 --> 16:46.120] he has to find surface defects, so you can put on a specific mask on the viewing software [16:46.120 --> 16:50.720] in order to help him to do that more efficiently. [16:50.720 --> 16:56.560] And yeah, you've seen it play, it's like a video that I made before. [16:56.560 --> 17:04.520] This viewing software is currently done in C-Sharp, and we're trying to put it open source [17:04.520 --> 17:08.160] since, I don't know, a bit more than a year. [17:08.160 --> 17:15.680] And the main problems that we are facing is we have begun building it like seven years [17:15.680 --> 17:23.160] ago, together with a new measurement coach, and it has some proprietary libraries in it. [17:23.160 --> 17:29.600] The main ones are Sidechart and Telerik for C-Sharp, and we're now trying to find a way [17:29.600 --> 17:38.560] to use open source while having those libraries inside, because it's very difficult to throw [17:38.560 --> 17:44.280] them out, especially Sidechart, there's no good alternative for the moment in order to [17:44.280 --> 17:47.760] be a performance viewing software. [17:47.760 --> 17:53.280] That's basically where we are right now. [17:53.280 --> 17:58.520] You can already download it on GitHub, I will show you, here's the link, there's also an [17:58.520 --> 18:06.520] overview later on, and we also have a couple of measurement files from Switzerland that [18:06.520 --> 18:12.240] you can download too, a couple of workspaces, and like that you can see how the data format [18:12.240 --> 18:17.080] works, how the viewing software works, how they interact together, and in case of implement [18:17.080 --> 18:23.320] your own version of it. [18:23.320 --> 18:29.200] And of course, the benefit of the viewing software would then be that you are able to [18:29.200 --> 18:39.160] do massively complex views with Synchron, I don't know how you say that in English, [18:39.160 --> 18:45.920] display data at the same time, and at the same position, or at the same point in the [18:45.920 --> 18:51.320] physical world, so basically the viewing software allows you to include the topology [18:51.320 --> 18:57.480] also if it's not exactly the same, so we have in Switzerland twice a year an update on the [18:57.480 --> 19:04.000] topology, and obviously some things changed due to maintenance work, due to new building [19:04.000 --> 19:10.600] of the tracks and so on, and viewing software can handle that in order if you have different [19:10.600 --> 19:16.080] states and different files, because as I said before, every file includes your topology [19:16.080 --> 19:23.360] too, so then you can display the data where it is taken on tracks that did not have changes [19:23.360 --> 19:31.000] and it will show you where it had changes and do not display the data in the same way [19:31.000 --> 19:35.760] if the track changes were applied, and then you can in the viewing software change from [19:35.760 --> 19:43.840] one view, from one topology view to another one, and you have an easy and powerful presentation [19:43.840 --> 19:51.560] layer I think, if you do so, and of course, we talked yesterday about it, if you take [19:51.560 --> 19:56.920] a measurement run and you run from eight o'clock in the morning till noon and you do a hundred [19:56.920 --> 20:04.040] kilometers and you do a circle, then if you show it in time you will have a straight 1D [20:04.040 --> 20:10.400] chart of your measurement data, if you show it in a distance you will have the same thing, [20:10.400 --> 20:17.800] a straight chart with a distance based on an x-axis instead of time, and if you show [20:17.800 --> 20:24.040] it in topology then you have a much shorter bit showing an overlay of how many circles [20:24.040 --> 20:29.720] you have run through in that morning, so this is quite an interesting thing to do and it [20:29.720 --> 20:39.720] is basically what most easily accessible viewing software lacks, so this possibility to tie [20:39.720 --> 20:47.200] it to your physical location like that. [20:47.200 --> 20:54.080] Then we have the licensing, we worked a lot together with Cornelius, together with Mahalia [20:54.080 --> 21:00.520] and also with Christian, which is sitting back there on the licensing that we will be [21:00.520 --> 21:07.600] using and we decided to use an Eclipse public license after some discussions on what would [21:07.600 --> 21:14.760] make sense, mainly because it is a weak copy left license and I can imagine a future where [21:14.760 --> 21:22.920] a measurement system company uses this software directly, say your startup company, you built [21:22.920 --> 21:31.120] your own measurement system, you need a presentation layer, you can take the RCMDX data format [21:31.120 --> 21:38.240] and the viewing software and create your own possibly commercial version of it by adding [21:38.240 --> 21:44.120] your own flavor to it and still be able to sell it as long as the core functionality [21:44.120 --> 21:50.560] if you improve it, you send it back upstream and that would be like the ideal version that [21:50.560 --> 21:56.800] we could attend in the future and that is basically one of the reasons why I am here [21:56.800 --> 22:02.480] to hope that all of you will go home and use it and spread it and bring your own companies [22:02.480 --> 22:07.320] to use it too. [22:07.320 --> 22:15.880] Let's see an overview, so right now the most important link is the first one, SBB has since [22:15.880 --> 22:22.000] one week now a project website for this and if you click on it, maybe something happens, [22:22.000 --> 22:31.360] I don't know, right, you will directly get to a website where you can find the, it does [22:31.360 --> 22:48.280] not show, thank you, why is it so big, okay at least you can read it, so you can see the [22:48.280 --> 22:55.440] website and there is a couple of links somewhere, so you have sample data that you can download [22:55.440 --> 22:59.600] directly, I think it is more or less one kilometer of data but it gives a good impression [22:59.600 --> 23:05.040] how the whole system can work and if you are really interested in having more data you [23:05.040 --> 23:11.960] can still contact me or Jean-Frederick and we can give you access to it and there is [23:11.960 --> 23:16.720] this more on topic, normally if it wouldn't be so zoomed out it would be a bit nicer and [23:16.720 --> 23:23.560] on the top right of the site but you can directly download the installer for the viewing software [23:23.560 --> 23:33.080] and you can directly go to the Github page with the format description and yeah you also [23:33.080 --> 23:37.720] have the workspaces that you have to load into the viewing software, you can also create [23:37.720 --> 23:47.520] your own ones, that is just the help if you want to play around with it, that is basically [23:47.520 --> 23:51.960] most of what I wanted to say, thank you very much for listening and I think we have a couple [23:51.960 --> 23:58.960] of minutes for questions too. [23:58.960 --> 24:24.960] Excellent, see, thank you very much. [24:24.960 --> 24:54.880] Please, that is the need point, you don't need to [24:54.880 --> 25:01.000] have the corresponding software if you don't want to, as soon as your data is described [25:01.000 --> 25:06.800] properly it is self-contained so you can build at any moment a new software to access it, [25:06.800 --> 25:11.680] you can of course keep your software too but you don't need to, you have the specification, [25:11.680 --> 25:30.880] you can build a tool to read it within a couple of days, time's up, okay, thank you very much.