[{"data":1,"prerenderedAt":443},["ShallowReactive",2],{"footer-primary":3,"footer-secondary":93,"footer-description":119,"tv-democratizing-data":121,"tv-democratizing-data-seasons":131,"tv-democratizing-data-episodes":140,"sales-reps":191},{"items":4},[5,29,49,69],{"id":6,"title":7,"url":8,"page":8,"children":9},"522e608a-77b0-4333-820d-d4f44be2ade1","Solutions",null,[10,15,20,25],{"id":11,"title":12,"url":8,"page":13},"fcafe85a-a798-4710-9e7a-776fe413aae5","Headless CMS",{"permalink":14},"/solutions/headless-cms",{"id":16,"title":17,"url":8,"page":18},"79972923-93cf-4777-9e32-5c9b0315fc10","Backend-as-a-Service",{"permalink":19},"/solutions/backend-as-a-service",{"id":21,"title":22,"url":8,"page":23},"0fa8d0c1-7b64-4f6f-939d-d7fdb99fc407","Product Information",{"permalink":24},"/solutions/product-information-management",{"id":26,"title":27,"url":28,"page":8},"63946d54-6052-4780-8ff4-91f5a9931dcc","100+ Things to Build","https://directus.io/blog/100-tools-apps-and-platforms-you-can-build-with-directus",{"id":30,"title":31,"url":8,"page":8,"children":32},"8ab4f9b1-f3e2-44d6-919b-011d91fe072f","Resources",[33,37,41,45],{"id":34,"title":35,"url":36,"page":8},"f951fb84-8777-4b84-9e91-996fe9d25483","Documentation","https://docs.directus.io",{"id":38,"title":39,"url":40,"page":8},"366febc7-a538-4c08-a326-e6204957f1e3","Guides","https://docs.directus.io/guides/",{"id":42,"title":43,"url":44,"page":8},"aeb9128e-1c5f-417f-863c-2449416433cd","Community","https://directus.chat",{"id":46,"title":47,"url":48,"page":8},"da1c2ed8-0a77-49b0-a903-49c56cb07de5","Release Notes","https://github.com/directus/directus/releases",{"id":50,"title":51,"url":8,"page":8,"children":52},"d61fae8c-7502-494a-822f-19ecff3d0256","Support",[53,57,61,65],{"id":54,"title":55,"url":56,"page":8},"8c43c781-7ebd-475f-a931-747e293c0a88","Issue Tracker","https://github.com/directus/directus/issues",{"id":58,"title":59,"url":60,"page":8},"d77bb78e-cf7b-4e01-932a-514414ba49d3","Feature Requests","https://github.com/directus/directus/discussions?discussions_q=is:open+sort:top",{"id":62,"title":63,"url":64,"page":8},"4346be2b-2c53-476e-b53b-becacec626a6","Community Chat","https://discord.com/channels/725371605378924594/741317677397704757",{"id":66,"title":67,"url":68,"page":8},"26c115d2-49f7-4edc-935e-d37d427fb89d","Cloud Dashboard","https://directus.cloud",{"id":70,"title":71,"url":8,"page":8,"children":72},"49141403-4f20-44ac-8453-25ace1265812","Organization",[73,78,84,88],{"id":74,"title":75,"url":76,"page":77},"1f36ea92-8a5e-47c8-914c-9822a8b9538a","About","/about",{"permalink":76},{"id":79,"title":80,"url":81,"page":82},"b84bf525-5471-4b14-a93c-225f6c386005","Careers","#",{"permalink":83},"/careers",{"id":85,"title":86,"url":87,"page":8},"86aabc3a-433d-434b-9efa-ad1d34be0a34","Brand Assets","https://drive.google.com/drive/folders/1lBOTba4RaA5ikqOn8Ewo4RYzD0XcymG9?usp=sharing",{"id":89,"title":90,"url":8,"page":91},"8d2fa1e3-198e-4405-81e1-2ceb858bc237","Contact",{"permalink":92},"/contact",{"items":94},[95,101,107,113],{"id":96,"title":97,"url":8,"page":98,"children":100},"8a1b7bfa-429d-4ffc-a650-2a5fdcf356da","Cloud Policies",{"permalink":99},"/cloud-policies",[],{"id":102,"title":103,"url":81,"page":104,"children":106},"bea848ef-828f-4306-8017-6b00ec5d4a0c","License",{"permalink":105},"/bsl",[],{"id":108,"title":109,"url":81,"page":110,"children":112},"4e914f47-4bee-42b7-b445-3119ee4196ef","Terms",{"permalink":111},"/terms",[],{"id":114,"title":115,"url":81,"page":116,"children":118},"ea69eda6-d317-4981-8421-fcabb1826bfd","Privacy",{"permalink":117},"/privacy",[],{"description":120},"\u003Cp>A composable backend to build your Headless CMS, BaaS, and more.&nbsp;\u003C/p>",{"id":122,"title":123,"logo":124,"cover":125,"tile":126,"announcement_text":8,"description":127,"slug":128,"one_liner":129,"card_text":8,"status":130,"sort":8},"c688c2d8-afc0-4175-864c-1c31c1338ccd","Democratizing Data","c3a90293-6821-4a56-a056-282d4f7756fa","5d8979c3-a62f-46f9-a4cd-6dff697d120d","baf30cae-71f1-4a82-88bc-6c882101e175","There is so much wonderful open data out there, but most is locked in CSV files never to be looked at again. In Democratizing Data, we bring new life to open data with the help of Directus. We import, explore, visualize, and access data via API to build new applications.","democratizing-data","Bringing new life to open data with the help of Directus.","published",[132],{"id":133,"number":134,"show":122,"year":135,"episodes":136},"4753d194-3ddc-4a66-a921-8bec80139ccf",1,"2024",[137,138,139],"b0b59e98-dd57-4fe4-a5df-60c8a5ec6415","246b31c7-0e1e-4a1c-8b9f-2a078863bb0f","d13394df-7843-498f-bfd6-0c3c6e95b546",[141,157,174],{"id":137,"slug":142,"vimeo_id":143,"description":144,"tile":145,"length":146,"resources":8,"people":8,"episode_number":134,"published":147,"title":148,"video_transcript_html":149,"video_transcript_text":150,"content":8,"seo":151,"status":130,"episode_people":152,"recommendations":154,"season":155},"trees-of-london","950736791","The Greater London Authority publishes a dataset of over 815,000 of London's Local Authority Maintained Trees. Kevin shows you how Directus can be used to further explore, understand, and remix this dataset both in the Data Studio and via API.","396bf4b0-153e-4088-9faa-2fb1076230d0",12,"2024-05-29","Trees of London","\u003Cp>Speaker 0: There is so much fantastic open data out there, but often after publishing, very little happens with it. In this show, we give new life to open datasets with the help of directors. So join me as we explore, analyze, and generate APIs to improve access to and democratize data. Now before we get started, if you have or know of an interesting open dataset and want us to include it as part of this series, Just reach out to our team and it may well feature in a future episode. Today's dataset was published by the Greater London Authority as part of the London urban forest plan.\u003C/p>\u003Cp>It contains 815,000 trees managed by 26 of London's boroughs, the city of London, and transport for London. Now this dataset includes things like where trees are planted, what species they are, how old they are, and more. Now this data didn't need much preprocessing before we imported it into Directus. The only thing I had to do was take the coordinate set and format wise convert that into GeoJSON. Some datasets already have that as a property, you know, when you download them, but this one didn't.\u003C/p>\u003Cp>So I did that, and in a moment, you'll get to see the benefit of having done that. Other than that, I just created a collection called trees, inside of my director's project, added fields that aligned with each of the column headings and went ahead and imported it. So let's see what the outcome is. So if you've not seen it before, this is the Director's Data Studio. It's a web application that lets you explore, analyze, and interact with data inside of a database.\u003C/p>\u003Cp>And I have already imported 815,000 trees with that were included as part of this dataset. Now immediately, I can jump in and start searching through it. I can filter it. So maybe I'll say something like only show me maple trees, for example, and you see that this has now been filtered down to a 100000 maple trees in this data set, and you can create more complex filters as well. Once you've created a set of filters that you may want to return to, you can also save them as a preset bookmark, and they will appear over here in the sidebar.\u003C/p>\u003Cp>And as this data set is added to or changed inside of Directus, of course, those views will automatically update the data that they display. We can step into a single item, of course, as well. So let's look at this tree here. We see its object ID. We see its borrow.\u003C/p>\u003Cp>We see its tree name as it's called in the database, its age group, and then this location here. Now because I went ahead and formatted the, coordinates as a GeoJSON point, now I can render this map. There are several mapping views inside of Directus. If you have a map box key and set that up, you'll get an enriched map, but this is what ships out of the box. So we see that this is exactly where this maple tree in Hillingdon is located.\u003C/p>\u003Cp>Now going back out to the explore view for a moment, there's something really cool, about this explore view. And right now, we are looking at this data in a table, very standard view, obviously, for looking at, data. But we can also go ahead and use one of the other built in layouts. These are not the only layouts that are available. You can instal more layouts from the marketplace, but one that's really good and built in is the map.\u003C/p>\u003Cp>So if I zoom out here, this is the maple trees, inside of the dataset all mapped. So instead of a table view, now we get this view, and I can click straight in and go to the individual tree. So let's give that just a moment, and there are the maple trees again. So that's really cool inside of Directus Explore and the editor. And, of course, if you update data inside of the editor and hit save, it will change the data that is displayed in this view.\u003C/p>\u003Cp>Once data is in Directus, we can also use the Directus insights module to start to visualize and understand it. So here I've built a little insights dashboard, and the way this works is that we have this variable here that I populated with all of the boroughs. And when one of those boroughs is selected, we get to see how many trees are in that burrow, the breakdown by age. Now the breakdown by age is interesting, because I have applied a filter that will remove any undefined options. Because, obviously, that column's quite large, but it doesn't tell us anything.\u003C/p>\u003Cp>So we've filtered those out. So these are all of the trees that have an age assigned to them. We have a breakdown by tree type. So we see there's a lot of cherry trees, for example, in Bexley comparative to others, and the top five tree types like so. And this all of these fields here, all of these panels here use the value of this drop down.\u003C/p>\u003Cp>So in Camden, there's 24,000 trees. This is the breakdown of them. We see a majority of trees are between 31 80 years old. There's quite a lot of plain trees followed by maple trees and cherry trees. On tree types, you know, you could also filter out other, which I suppose would make sense, and we get this breakdown by tree type.\u003C/p>\u003Cp>Now the each of these panels have their own configuration. You can change the way they look, the color, the filters, whether or not, in this case, there is a legend that's being shown or just labels on hover, and a whole bunch more. This is not all of the panels that are available either. We have things like meters, metrics, line charts, and so on. And once again, using the directors extension system and the directors marketplace, you can go and install more panels and visualize data in other novel and interesting ways.\u003C/p>\u003Cp>Now as well as the data studio, directors also automatically generates APIs for your data that allow developers and applications to consume that data and perhaps remix it into new applications. There is a very, very granular set of permissions that you can set So you can perhaps allow certain data to be available publicly. Some might require a user to first register and you can enable or disable data that can be seen or interacted with on a per field basis. So I have prepared some API requests here for this specific data set that I think will demonstrate some of the powers of this API. So right here, remembering that our collection was called trees, we automatically have an API end point that will return all trees in the dataset.\u003C/p>\u003Cp>So we make this request and what is returned is an object, is an array of objects, Each object representing 1 tree and the specific fields which we have allowed to be returned publicly. By default, a 100 items are returned at once. You can edit that, and you can also paginate. So perhaps you only get a 100 or 200 at a time, and then you can build out a pagination system. Now you can also just very much the same way as inside of the data studio, filter the data that is returned.\u003C/p>\u003Cp>And the example we gave earlier was to filter to just show maple trees, and this is exactly how you would do it using the API. We add a filter and we say the tree name must equal maple. And now we only have those 100000 trees returned, or the first 100, of course. But, you know, you this only returns maple trees across all boroughs. You can do that with any field.\u003C/p>\u003Cp>So here we say we only want to return items where the borough is equal to Brent, and you can stack these. So you can say, I only wanna return trees that are in Lewisham and there are oak trees. And that hopefully you're starting to see that you can build quite powerful queries and the applications you can build on top of that. There are also API endpoints for creating, for editing, and for deleting data points. So that's also kind of introduces some really interesting potential uses for this dataset where perhaps it could even be maintained or moderated through citizen engagement.\u003C/p>\u003Cp>Now these last two examples I'm about to show you use different query parameters. So we're not filtering here, but instead, we are aggregating and grouping data to start to analyze it. So here we are saying we want to return every tree, but we wanna group it by the borough that that tree exists in. And this query here returns this result. So we see for every borough, we get to see how many trees are planted.\u003C/p>\u003Cp>Here's another example where we're grouping by a couple of different, heuristics and you'll get to see how this works. So here we're saying, again, return every tree, just count them. But I wanna group them by borough and by tree name. So now you get to see embarking in Dagenham, there are 219 elder trees. Embarking in Dagenham, there are 695 apple trees and so on.\u003C/p>\u003Cp>So, of course, there are gonna be way more objects here. It's gonna effectively be a matrix of every tree and every bar that exists in the dataset. But once again, we are effectively analyzing this data now via API. And it's these kind of queries that actually power the panels inside of directors insights. Now there are a whole bunch of query parameters that you can use over in the API here.\u003C/p>\u003Cp>You can filter, you can search, sort, limit, the number of items that are shown as seen. The default limit is 100. We mentioned that earlier. We also get to see all of the aggregation and grouping functions that are available, to, again, do more analysis on that data, and more. So refer to the documentation, but the APIs are super powerful, and allow developers to effectively remix and use data in their applications and projects.\u003C/p>\u003Cp>I hope you found this episode of democratizing data interesting. And once again, if you have a dataset or know of a dataset that might be interesting to include in this series, please do reach out to us. We'd love to see it. Until next time. Bye for now.\u003C/p>","There is so much fantastic open data out there, but often after publishing, very little happens with it. In this show, we give new life to open datasets with the help of directors. So join me as we explore, analyze, and generate APIs to improve access to and democratize data. Now before we get started, if you have or know of an interesting open dataset and want us to include it as part of this series, Just reach out to our team and it may well feature in a future episode. Today's dataset was published by the Greater London Authority as part of the London urban forest plan. It contains 815,000 trees managed by 26 of London's boroughs, the city of London, and transport for London. Now this dataset includes things like where trees are planted, what species they are, how old they are, and more. Now this data didn't need much preprocessing before we imported it into Directus. The only thing I had to do was take the coordinate set and format wise convert that into GeoJSON. Some datasets already have that as a property, you know, when you download them, but this one didn't. So I did that, and in a moment, you'll get to see the benefit of having done that. Other than that, I just created a collection called trees, inside of my director's project, added fields that aligned with each of the column headings and went ahead and imported it. So let's see what the outcome is. So if you've not seen it before, this is the Director's Data Studio. It's a web application that lets you explore, analyze, and interact with data inside of a database. And I have already imported 815,000 trees with that were included as part of this dataset. Now immediately, I can jump in and start searching through it. I can filter it. So maybe I'll say something like only show me maple trees, for example, and you see that this has now been filtered down to a 100000 maple trees in this data set, and you can create more complex filters as well. Once you've created a set of filters that you may want to return to, you can also save them as a preset bookmark, and they will appear over here in the sidebar. And as this data set is added to or changed inside of Directus, of course, those views will automatically update the data that they display. We can step into a single item, of course, as well. So let's look at this tree here. We see its object ID. We see its borrow. We see its tree name as it's called in the database, its age group, and then this location here. Now because I went ahead and formatted the, coordinates as a GeoJSON point, now I can render this map. There are several mapping views inside of Directus. If you have a map box key and set that up, you'll get an enriched map, but this is what ships out of the box. So we see that this is exactly where this maple tree in Hillingdon is located. Now going back out to the explore view for a moment, there's something really cool, about this explore view. And right now, we are looking at this data in a table, very standard view, obviously, for looking at, data. But we can also go ahead and use one of the other built in layouts. These are not the only layouts that are available. You can instal more layouts from the marketplace, but one that's really good and built in is the map. So if I zoom out here, this is the maple trees, inside of the dataset all mapped. So instead of a table view, now we get this view, and I can click straight in and go to the individual tree. So let's give that just a moment, and there are the maple trees again. So that's really cool inside of Directus Explore and the editor. And, of course, if you update data inside of the editor and hit save, it will change the data that is displayed in this view. Once data is in Directus, we can also use the Directus insights module to start to visualize and understand it. So here I've built a little insights dashboard, and the way this works is that we have this variable here that I populated with all of the boroughs. And when one of those boroughs is selected, we get to see how many trees are in that burrow, the breakdown by age. Now the breakdown by age is interesting, because I have applied a filter that will remove any undefined options. Because, obviously, that column's quite large, but it doesn't tell us anything. So we've filtered those out. So these are all of the trees that have an age assigned to them. We have a breakdown by tree type. So we see there's a lot of cherry trees, for example, in Bexley comparative to others, and the top five tree types like so. And this all of these fields here, all of these panels here use the value of this drop down. So in Camden, there's 24,000 trees. This is the breakdown of them. We see a majority of trees are between 31 80 years old. There's quite a lot of plain trees followed by maple trees and cherry trees. On tree types, you know, you could also filter out other, which I suppose would make sense, and we get this breakdown by tree type. Now the each of these panels have their own configuration. You can change the way they look, the color, the filters, whether or not, in this case, there is a legend that's being shown or just labels on hover, and a whole bunch more. This is not all of the panels that are available either. We have things like meters, metrics, line charts, and so on. And once again, using the directors extension system and the directors marketplace, you can go and install more panels and visualize data in other novel and interesting ways. Now as well as the data studio, directors also automatically generates APIs for your data that allow developers and applications to consume that data and perhaps remix it into new applications. There is a very, very granular set of permissions that you can set So you can perhaps allow certain data to be available publicly. Some might require a user to first register and you can enable or disable data that can be seen or interacted with on a per field basis. So I have prepared some API requests here for this specific data set that I think will demonstrate some of the powers of this API. So right here, remembering that our collection was called trees, we automatically have an API end point that will return all trees in the dataset. So we make this request and what is returned is an object, is an array of objects, Each object representing 1 tree and the specific fields which we have allowed to be returned publicly. By default, a 100 items are returned at once. You can edit that, and you can also paginate. So perhaps you only get a 100 or 200 at a time, and then you can build out a pagination system. Now you can also just very much the same way as inside of the data studio, filter the data that is returned. And the example we gave earlier was to filter to just show maple trees, and this is exactly how you would do it using the API. We add a filter and we say the tree name must equal maple. And now we only have those 100000 trees returned, or the first 100, of course. But, you know, you this only returns maple trees across all boroughs. You can do that with any field. So here we say we only want to return items where the borough is equal to Brent, and you can stack these. So you can say, I only wanna return trees that are in Lewisham and there are oak trees. And that hopefully you're starting to see that you can build quite powerful queries and the applications you can build on top of that. There are also API endpoints for creating, for editing, and for deleting data points. So that's also kind of introduces some really interesting potential uses for this dataset where perhaps it could even be maintained or moderated through citizen engagement. Now these last two examples I'm about to show you use different query parameters. So we're not filtering here, but instead, we are aggregating and grouping data to start to analyze it. So here we are saying we want to return every tree, but we wanna group it by the borough that that tree exists in. And this query here returns this result. So we see for every borough, we get to see how many trees are planted. Here's another example where we're grouping by a couple of different, heuristics and you'll get to see how this works. So here we're saying, again, return every tree, just count them. But I wanna group them by borough and by tree name. So now you get to see embarking in Dagenham, there are 219 elder trees. Embarking in Dagenham, there are 695 apple trees and so on. So, of course, there are gonna be way more objects here. It's gonna effectively be a matrix of every tree and every bar that exists in the dataset. But once again, we are effectively analyzing this data now via API. And it's these kind of queries that actually power the panels inside of directors insights. Now there are a whole bunch of query parameters that you can use over in the API here. You can filter, you can search, sort, limit, the number of items that are shown as seen. The default limit is 100. We mentioned that earlier. We also get to see all of the aggregation and grouping functions that are available, to, again, do more analysis on that data, and more. So refer to the documentation, but the APIs are super powerful, and allow developers to effectively remix and use data in their applications and projects. I hope you found this episode of democratizing data interesting. And once again, if you have a dataset or know of a dataset that might be interesting to include in this series, please do reach out to us. We'd love to see it. Until next time. Bye for now.","93cd94b2-425d-497b-923b-1abb71b19c95",[153],"b96aae87-d073-4d72-a5a0-f77fa748d11d",[],{"id":133,"number":134,"show":122,"year":135,"episodes":156},[137,138,139],{"id":138,"slug":158,"vimeo_id":159,"description":160,"tile":161,"length":162,"resources":8,"people":8,"episode_number":163,"published":164,"title":165,"video_transcript_html":166,"video_transcript_text":167,"content":8,"seo":168,"status":130,"episode_people":169,"recommendations":171,"season":172},"meteorite-landings","950737408","NASA publishes a dataset of over 34,000 meteorite landings as recorded by The Meteoritical Society.  Kevin shows you how Directus can be used to further explore, understand, and remix this dataset both in the Data Studio and via API.\n","23ca152b-37f6-4cfe-97b9-7c2a2af2f4fa",11,2,"2024-06-05","Meteorite Landings","\u003Cp>Speaker 0: In this show, we give new life to open datasets with the help of directors. Join me as we explore, analyze, and generate APIs to improve access to and democratize data. Before we get started, if you have or know of an interesting open dataset and want us to feature it, just reach out to our team and it may well feature in a future episode. Today's dataset was published by NASA and contains data on over 34,000 meteorites from the meteoritical society. It contains information about their classification, where and when they were observed, and whether they fell or were found.\u003C/p>\u003Cp>Now just a quick note before we continue, I later, after setting everything up, learnt about the difference between a meteor and a meteorite. Basically, it's a meteor when it's in the air, and when it survives its journey down to Earth and it lands, it becomes a meteorite. This is a dataset of meteorites, but I'm going to, for ease, just refer to them as meteors throughout. I just I want you to know that I know the difference now and so do you. So these are meteorites.\u003C/p>\u003Cp>Right? But we'll refer to them as meteors from here. Now there's only a couple of very small processing steps that I made to this data before I imported it in Directus. Firstly, I converted coordinates to GeoJSON objects, which allows us to use all of the mapping features inside of Directus. Secondly, there was one data point in here which was incorrectly entered.\u003C/p>\u003Cp>It said that a a meteor fell at, what was the year? 2101, and it was 2010. I googled it, and I fixed it in the dataset because it was ruining all of the graphs. So just to note there that there was a small error in the data that I fixed, and I changed the format of just the mapping and location data so it works following the GeoJSON standard. Now before we jump in and see what we can now do with this data, just to note that this specific dataset just stops in 2013.\u003C/p>\u003Cp>And as we can see here in the web page, there is a new dataset on a new URL, but that URL doesn't resolve. So I just use this dataset. Just know that it stops in 2013, but I'm sure it could be updated if you were to follow along at home. This is the director's data studio. It's a web application that lets you explore, analyze, and work with data in a database.\u003C/p>\u003Cp>And as you can see, all 38,000 items from that dataset have been imported. Now straight away, we have access to everything Directus offers. So we can filter these items perhaps by the year that they they were discovered or whether they fell or were found, stuff like that. We can step in to a single item like this one here and see a bit more data around it. Here we can see the weight of it or the mass of it rather, when it was found.\u003C/p>\u003Cp>And just to be clear, this is a date field, but the dataset only has the year. So the year is the only thing that actually matters here. Whether or not it was, it fell or it was found, it's class, and so on. And because we encoded the coordinates as a GeoJSON point, we know the exact point that this coordinate resolves to. So we can zoom out there and see that on a map.\u003C/p>\u003Cp>Now this is a pretty standard way to look at data. It's a table, but directors does also have other layouts including a map. And as these data points are encoded, as GeoJSON, as I mentioned, we now get to use the map layout, which I think is super interesting. So you can see a concentration here perhaps, of data that is stored in this dataset. So I just think that's really fascinating.\u003C/p>\u003Cp>There's obviously a lot more we can do with this data inside of directors, but what I wanna draw your attention to is the insights module. So this is an insights dashboard for this dataset here that I prepared earlier, and it it just allows us to analyse this data. So I've added a few panels here. Firstly, I've added this start year and end year input so we can change this. You know, we can change this and all of these other fields are hooked into these two values.\u003C/p>\u003Cp>To show you how that works, inside of this panel, we add a filter and we say the year, must be greater than or equal to this 1st year and less than or equal to the end year. You can apply other filters, of course, in here manually, like hard coded or using dynamic values from text boxes. So in here, we also see, you know, this, this graph that I've put in showing all of the meteors in the dataset for these given years. The average size in the time frame. So we see that there was a kind of peak in size, I suppose, of of, meteors in 2004 and back up in 2013.\u003C/p>\u003Cp>I don't know if that means anything, but you can discover it, I suppose. You can also look at, you know, whether found or fell. So we see there was just 1, 1 meteor in this dataset that fell and was observed to have fallen versus having later been found. The classes, of those meteors so we see in this time frame here, a majority of meteors were l six class. And here is a list of meteors in this criteria here.\u003C/p>\u003Cp>They're just alphabetized, so we can step into those and start to look in a little more detail. So as you saw, we can use the director's data studio to explore and query data using the web application. But every director's project also comes with a set of auto generated APIs to do the same thing. And this means that developers can not only interact with that data using APIs, but can build applications on top of those APIs to increase its usage, remix it, and encourage citizen participation. Now these APIs can also be used to create or update data, and they can be locked down in a number of ways.\u003C/p>\u003Cp>So they can be public, but they might also require registration or specific permissions. Now I've prepared some requests to show you so you can get an idea of how querying data works using the REST API. But, of course, there are API endpoints as well for updating or creating new data as well. Let's jump into postman and see how it works. This end point will fetch all items from the meteors collection.\u003C/p>\u003Cp>It will return an array of objects where each object represents 1 meteor. Now by default, this will return a 100 items and you can either paginate or change the size of the response or both. And realistically, you'll probably want to do both. And just a reminder that you can also lock down which fields are actually returned by directors to a public user or indeed any user with any role. So here we see the ID, the name, the class, the location encoded as a GeoJSON object, and the mass in grams.\u003C/p>\u003Cp>Now we can also tack on any number of director's query parameters to change the data that comes back. So this example here has 2 query parameters. The first one as shown here and here will only return items with a mass that is greater than or equal to a 1,000. That's grams. So that's 1 kilo.\u003C/p>\u003Cp>So it will never return items that are less than a 1,000 in this field. It will also sort the returned items starting with the biggest. So this is the biggest item on record found in 1920, and the next biggest was found in 18/18, and so on and so forth. So you can add any number of these filters, sorts, query parameters on, and you can add several, you can add several filters at the same time as well. Now this final example isn't about getting data itself, but it's about using our aggregation and group by query parameters to start to analyze the data.\u003C/p>\u003Cp>And this is more or less how the director's insights module actually generates data in the panels. So here we're saying, get every item and group it by the year. So for every year in this data set, we get to see how many meteors exist. So there's 1 in this year, 1 in this year, and so on. But down in let's find an example here.\u003C/p>\u003Cp>In 17, 68, there are 2 meteors in the dataset and so on and so forth. These are really powerful. This is obviously quite a straightforward example, but you can use this in many, many ways. There are a whole set of query parameters you can use, not just aggregation and grouping. We saw filter.\u003C/p>\u003Cp>We saw sort, but there's also a search. There's stuff for pagination, aliases, functions you can use, especially around dates and more. And there are also really complex filter operators that you can use. So we just use greater than or equal to, and this is, you know, one of quite a standard set of operators for any time you're querying data. But ones that I find interesting are the intersects and the intersects bounding box.\u003C/p>\u003Cp>These are only available when you have geospatial data. So you can set a box and say, is this point in the box or not, or only return items that are in the box. And so I'm sure you can start to imagine the applications you can build on top of this data along with the Directus APIs. So that's a little bit of an example on how to take data from NASA around meteorites that have fallen to Earth, and bring them into direct us to explore them, to analyze them, and of course, to use the auto generated APIs. Once again, if you have a dataset that you or you know of a dataset that you think would be interesting for this series, just get in touch, and maybe it will feature in a future episode.\u003C/p>\u003Cp>But until then, bye for now.\u003C/p>","In this show, we give new life to open datasets with the help of directors. Join me as we explore, analyze, and generate APIs to improve access to and democratize data. Before we get started, if you have or know of an interesting open dataset and want us to feature it, just reach out to our team and it may well feature in a future episode. Today's dataset was published by NASA and contains data on over 34,000 meteorites from the meteoritical society. It contains information about their classification, where and when they were observed, and whether they fell or were found. Now just a quick note before we continue, I later, after setting everything up, learnt about the difference between a meteor and a meteorite. Basically, it's a meteor when it's in the air, and when it survives its journey down to Earth and it lands, it becomes a meteorite. This is a dataset of meteorites, but I'm going to, for ease, just refer to them as meteors throughout. I just I want you to know that I know the difference now and so do you. So these are meteorites. Right? But we'll refer to them as meteors from here. Now there's only a couple of very small processing steps that I made to this data before I imported it in Directus. Firstly, I converted coordinates to GeoJSON objects, which allows us to use all of the mapping features inside of Directus. Secondly, there was one data point in here which was incorrectly entered. It said that a a meteor fell at, what was the year? 2101, and it was 2010. I googled it, and I fixed it in the dataset because it was ruining all of the graphs. So just to note there that there was a small error in the data that I fixed, and I changed the format of just the mapping and location data so it works following the GeoJSON standard. Now before we jump in and see what we can now do with this data, just to note that this specific dataset just stops in 2013. And as we can see here in the web page, there is a new dataset on a new URL, but that URL doesn't resolve. So I just use this dataset. Just know that it stops in 2013, but I'm sure it could be updated if you were to follow along at home. This is the director's data studio. It's a web application that lets you explore, analyze, and work with data in a database. And as you can see, all 38,000 items from that dataset have been imported. Now straight away, we have access to everything Directus offers. So we can filter these items perhaps by the year that they they were discovered or whether they fell or were found, stuff like that. We can step in to a single item like this one here and see a bit more data around it. Here we can see the weight of it or the mass of it rather, when it was found. And just to be clear, this is a date field, but the dataset only has the year. So the year is the only thing that actually matters here. Whether or not it was, it fell or it was found, it's class, and so on. And because we encoded the coordinates as a GeoJSON point, we know the exact point that this coordinate resolves to. So we can zoom out there and see that on a map. Now this is a pretty standard way to look at data. It's a table, but directors does also have other layouts including a map. And as these data points are encoded, as GeoJSON, as I mentioned, we now get to use the map layout, which I think is super interesting. So you can see a concentration here perhaps, of data that is stored in this dataset. So I just think that's really fascinating. There's obviously a lot more we can do with this data inside of directors, but what I wanna draw your attention to is the insights module. So this is an insights dashboard for this dataset here that I prepared earlier, and it it just allows us to analyse this data. So I've added a few panels here. Firstly, I've added this start year and end year input so we can change this. You know, we can change this and all of these other fields are hooked into these two values. To show you how that works, inside of this panel, we add a filter and we say the year, must be greater than or equal to this 1st year and less than or equal to the end year. You can apply other filters, of course, in here manually, like hard coded or using dynamic values from text boxes. So in here, we also see, you know, this, this graph that I've put in showing all of the meteors in the dataset for these given years. The average size in the time frame. So we see that there was a kind of peak in size, I suppose, of of, meteors in 2004 and back up in 2013. I don't know if that means anything, but you can discover it, I suppose. You can also look at, you know, whether found or fell. So we see there was just 1, 1 meteor in this dataset that fell and was observed to have fallen versus having later been found. The classes, of those meteors so we see in this time frame here, a majority of meteors were l six class. And here is a list of meteors in this criteria here. They're just alphabetized, so we can step into those and start to look in a little more detail. So as you saw, we can use the director's data studio to explore and query data using the web application. But every director's project also comes with a set of auto generated APIs to do the same thing. And this means that developers can not only interact with that data using APIs, but can build applications on top of those APIs to increase its usage, remix it, and encourage citizen participation. Now these APIs can also be used to create or update data, and they can be locked down in a number of ways. So they can be public, but they might also require registration or specific permissions. Now I've prepared some requests to show you so you can get an idea of how querying data works using the REST API. But, of course, there are API endpoints as well for updating or creating new data as well. Let's jump into postman and see how it works. This end point will fetch all items from the meteors collection. It will return an array of objects where each object represents 1 meteor. Now by default, this will return a 100 items and you can either paginate or change the size of the response or both. And realistically, you'll probably want to do both. And just a reminder that you can also lock down which fields are actually returned by directors to a public user or indeed any user with any role. So here we see the ID, the name, the class, the location encoded as a GeoJSON object, and the mass in grams. Now we can also tack on any number of director's query parameters to change the data that comes back. So this example here has 2 query parameters. The first one as shown here and here will only return items with a mass that is greater than or equal to a 1,000. That's grams. So that's 1 kilo. So it will never return items that are less than a 1,000 in this field. It will also sort the returned items starting with the biggest. So this is the biggest item on record found in 1920, and the next biggest was found in 18/18, and so on and so forth. So you can add any number of these filters, sorts, query parameters on, and you can add several, you can add several filters at the same time as well. Now this final example isn't about getting data itself, but it's about using our aggregation and group by query parameters to start to analyze the data. And this is more or less how the director's insights module actually generates data in the panels. So here we're saying, get every item and group it by the year. So for every year in this data set, we get to see how many meteors exist. So there's 1 in this year, 1 in this year, and so on. But down in let's find an example here. In 17, 68, there are 2 meteors in the dataset and so on and so forth. These are really powerful. This is obviously quite a straightforward example, but you can use this in many, many ways. There are a whole set of query parameters you can use, not just aggregation and grouping. We saw filter. We saw sort, but there's also a search. There's stuff for pagination, aliases, functions you can use, especially around dates and more. And there are also really complex filter operators that you can use. So we just use greater than or equal to, and this is, you know, one of quite a standard set of operators for any time you're querying data. But ones that I find interesting are the intersects and the intersects bounding box. These are only available when you have geospatial data. So you can set a box and say, is this point in the box or not, or only return items that are in the box. And so I'm sure you can start to imagine the applications you can build on top of this data along with the Directus APIs. So that's a little bit of an example on how to take data from NASA around meteorites that have fallen to Earth, and bring them into direct us to explore them, to analyze them, and of course, to use the auto generated APIs. Once again, if you have a dataset that you or you know of a dataset that you think would be interesting for this series, just get in touch, and maybe it will feature in a future episode. But until then, bye for now.","ac30eac9-474e-4c9f-be0a-b07f896ced12",[170],"43ea5c2a-29a4-4e00-9495-35383d499869",[],{"id":133,"number":134,"show":122,"year":135,"episodes":173},[137,138,139],{"id":139,"slug":175,"vimeo_id":176,"description":177,"tile":178,"length":179,"resources":8,"people":8,"episode_number":180,"published":181,"title":182,"video_transcript_html":183,"video_transcript_text":184,"content":8,"seo":185,"status":130,"episode_people":186,"recommendations":188,"season":189},"cycle-around-new-york-city","950738035","Citi Bike publish the millions of rides used by their customers around New York City's thousands of stations. Kevin shows you how Directus can be used to further explore, understand, and remix this dataset both in the Data Studio and via API.","93c14160-8b9c-4fe7-9db8-0831d9c914de",9,3,"2024-06-12","Cycle Around New York City","\u003Cp>Speaker 0: In this show, we give new life to open datasets with the help of directors. Join me as we explore, analyze, and generate APIs to improve access to and to democratize data. Before we get started, if you have or know of an interesting open dataset and want us to use it, just reach out and it might just feature on a future episode. Today's dataset comes from Citi Bike. Across New York City, there are over 2,000 stations where rental bikes can be picked up and dropped off.\u003C/p>\u003Cp>Every customer ride is represented in this dataset detailing when and where a bike was picked up and when and where it was dropped off, as well as some additional metadata about the vehicle and the customer. Now in March 2024, there were over 2,000,000 rides that took place, but for this show, I've just imported the first million to direct us. Now compared to other, episodes, I've done a little more preprocessing on this data, And that's because I wanted to have 2 collections when this data set only provides one set of data. I wanted to have stations and then rides separately. So I needed to split out the stations from the rides data and, import those separately.\u003C/p>\u003Cp>Additionally, like every previous episode, I converted station coordinates to GeoJSON objects to enable mapping features inside of. And with that, I think we're ready to jump in and get started. So as you can see here, we have 2 separate collections, stations and rides. Each station has its internal identifier in the Citi Bike system and the friendly name. Now if we go into any of these, we additionally see the map rendered because we converted that set of coordinates to GeoJSON along with all of the rides that were started and ended inside of this dataset.\u003C/p>\u003Cp>This is one of the less popular station, it seems, compared to others. Now because this is all inside of Directus, we can start using Directus' powerful filter and search interface in order to narrow this down if we want. But for now, I think we will just use everything. Now inside of layout options, we can change the layout. Right now, we are rendering this data inside of a table, which, of course, is a standard way to represent data in a database.\u003C/p>\u003Cp>But what's really nice is that Directus, out of the box, provides a map interface a map layout rather. And so we can explore this data kind of a little more visually and as it is represented in the real world. So this is just 820 4 of the items that are inside this area of the map. And we can click in if we want to individual items like this. So here we see them, perhaps a little more of a popular station in terms of ride started and ride ended.\u003C/p>\u003Cp>Talking about rides, let's look at the rides collection. So this is a huge dataset. This is a 1000000 items. And once again, there was over 2,000,000 in March, but I've just imported the first million, because that was the first CSV that is provided from Citibank. They chunk it up.\u003C/p>\u003Cp>And each individual ride has a unique identifier, the station start and time, the station end and time, whether or not the member is a casual user or a member, and whether the bike is a classic bike or an electric bike. Now this station start and end, these are relational fields. So these link back to the stations, to the stations items. So we can click here, and we can see the station item that we just opened up before. Now, again, we can explore this in many different ways inside of Directus.\u003C/p>\u003Cp>But when it comes to analyzing data, we want to use Directus insights. So let's go see something that I've set up earlier. This is a directus insights dashboard that I built before I started recording. And if I'm completely honest, this was one episode where I got a little bit of choice paralysis about what I could possibly represent because there is just so much rich data inside of this dataset. But for now, this is what I've built to demonstrate something that's possible.\u003C/p>\u003Cp>So here I have a relational global variable field, which means it will show every station in the interface. So I clicked 1. I clicked this one here, And all of the other panels relate to the to the item that I selected. So firstly, we have the internal identifier. We see how many rides were started at this station and ended, which perhaps is interesting in itself.\u003C/p>\u003Cp>People seem to want to end at this location more than leave it. We get to see the number of rides started per day within this dataset and whether or not it is a cat mostly casual user or member or, a member user type and what kind of bikes are picked up. Now one thing that's really interesting about this one that I do think is telling, for example, is almost every station I have tried this with in the past has a majority member, and less casual users. But, of course, being Central Park, this is definitely a tourist location. So it's no surprise that perhaps there are more casual users picking up bikes or dropping off bikes at this location.\u003C/p>\u003Cp>So that's just really just an interesting note, I suppose. Maybe one way this can be used is if you're spotting there are areas where there are more casual users, but there are a high volume of users. Maybe this is an opportunity to run campaigns to convert people into members, for example. But I'm sure there's a lot more you can do with this data. Now this isn't all.\u003C/p>\u003Cp>Everything you do inside of directors can also be done using the automatically generated APIs. So let's go see how they work. So I've prepared a small number of requests just to demonstrate the capabilities of the API. But this is just a tiny sliver of what's available in terms of fetching data. So firstly, we have a stations collection.\u003C/p>\u003Cp>And as a result, we automatically have this endpoint slash items slash stations to go fetch all of the stations. So here we see, you know, an array is returned of objects. Each object represents 1 item in the in the collection, and this looks very similar to the UI that we saw in the editor. We have an internal ID, a name, a point, a set of coordinates, in GeoJSON format, the ride started, and the ride's ended. Now given that they all have an ID, you can also further break this down and perhaps just get a single item back.\u003C/p>\u003Cp>So this is now not an array anymore. It's just that single object. So that's stations. We also have individual rides. So once again, each one has an ID and all of that data we just saw.\u003C/p>\u003Cp>Right? All of that data we just saw. Station start and station end are IDs of, of the stations. Now you can further start to narrow this down by using Directus' filter language, filter filter syntax. So here, we are applying 2 filters.\u003C/p>\u003Cp>And all we're doing is saying, grab all of the rides that happened inside of the 3rd month. In this case, that's all of them because they're all in March, but that may not always be the case, and on the 7th day. So this is everything from the 7th March. You could further, of course, narrow this down to specific stations if you want or specific member types and so on and so forth. You can just add more filters on the end here.\u003C/p>\u003Cp>Now this final request is not so much about fetching data, but rather analyzing it using our aggregate and group by query parameters. And it's these which actually power the panels inside of Directus insights. So here we're saying, count all of the items and then group them by the day in which that ride was started. And what we get as a as a result is for every day, we get a count. So we get to say, hey.\u003C/p>\u003Cp>On the 1st March, there were 32,329 rights that took part inside of this dataset and so on and so forth. For every single day inside of this dataset, there is a, a different count. So that's a little bit about how you can use Directus Connect and the automatically generated APIs in order to explore the data either to actually query the data itself or run some analysis. So once again, I hope you found this interesting. And if you have an interesting dataset or know of an interesting dataset that we can use in a future episode, just reach out.\u003C/p>\u003Cp>I love to see it. Until next time. See you later.\u003C/p>","In this show, we give new life to open datasets with the help of directors. Join me as we explore, analyze, and generate APIs to improve access to and to democratize data. Before we get started, if you have or know of an interesting open dataset and want us to use it, just reach out and it might just feature on a future episode. Today's dataset comes from Citi Bike. Across New York City, there are over 2,000 stations where rental bikes can be picked up and dropped off. Every customer ride is represented in this dataset detailing when and where a bike was picked up and when and where it was dropped off, as well as some additional metadata about the vehicle and the customer. Now in March 2024, there were over 2,000,000 rides that took place, but for this show, I've just imported the first million to direct us. Now compared to other, episodes, I've done a little more preprocessing on this data, And that's because I wanted to have 2 collections when this data set only provides one set of data. I wanted to have stations and then rides separately. So I needed to split out the stations from the rides data and, import those separately. Additionally, like every previous episode, I converted station coordinates to GeoJSON objects to enable mapping features inside of. And with that, I think we're ready to jump in and get started. So as you can see here, we have 2 separate collections, stations and rides. Each station has its internal identifier in the Citi Bike system and the friendly name. Now if we go into any of these, we additionally see the map rendered because we converted that set of coordinates to GeoJSON along with all of the rides that were started and ended inside of this dataset. This is one of the less popular station, it seems, compared to others. Now because this is all inside of Directus, we can start using Directus' powerful filter and search interface in order to narrow this down if we want. But for now, I think we will just use everything. Now inside of layout options, we can change the layout. Right now, we are rendering this data inside of a table, which, of course, is a standard way to represent data in a database. But what's really nice is that Directus, out of the box, provides a map interface a map layout rather. And so we can explore this data kind of a little more visually and as it is represented in the real world. So this is just 820 4 of the items that are inside this area of the map. And we can click in if we want to individual items like this. So here we see them, perhaps a little more of a popular station in terms of ride started and ride ended. Talking about rides, let's look at the rides collection. So this is a huge dataset. This is a 1000000 items. And once again, there was over 2,000,000 in March, but I've just imported the first million, because that was the first CSV that is provided from Citibank. They chunk it up. And each individual ride has a unique identifier, the station start and time, the station end and time, whether or not the member is a casual user or a member, and whether the bike is a classic bike or an electric bike. Now this station start and end, these are relational fields. So these link back to the stations, to the stations items. So we can click here, and we can see the station item that we just opened up before. Now, again, we can explore this in many different ways inside of Directus. But when it comes to analyzing data, we want to use Directus insights. So let's go see something that I've set up earlier. This is a directus insights dashboard that I built before I started recording. And if I'm completely honest, this was one episode where I got a little bit of choice paralysis about what I could possibly represent because there is just so much rich data inside of this dataset. But for now, this is what I've built to demonstrate something that's possible. So here I have a relational global variable field, which means it will show every station in the interface. So I clicked 1. I clicked this one here, And all of the other panels relate to the to the item that I selected. So firstly, we have the internal identifier. We see how many rides were started at this station and ended, which perhaps is interesting in itself. People seem to want to end at this location more than leave it. We get to see the number of rides started per day within this dataset and whether or not it is a cat mostly casual user or member or, a member user type and what kind of bikes are picked up. Now one thing that's really interesting about this one that I do think is telling, for example, is almost every station I have tried this with in the past has a majority member, and less casual users. But, of course, being Central Park, this is definitely a tourist location. So it's no surprise that perhaps there are more casual users picking up bikes or dropping off bikes at this location. So that's just really just an interesting note, I suppose. Maybe one way this can be used is if you're spotting there are areas where there are more casual users, but there are a high volume of users. Maybe this is an opportunity to run campaigns to convert people into members, for example. But I'm sure there's a lot more you can do with this data. Now this isn't all. Everything you do inside of directors can also be done using the automatically generated APIs. So let's go see how they work. So I've prepared a small number of requests just to demonstrate the capabilities of the API. But this is just a tiny sliver of what's available in terms of fetching data. So firstly, we have a stations collection. And as a result, we automatically have this endpoint slash items slash stations to go fetch all of the stations. So here we see, you know, an array is returned of objects. Each object represents 1 item in the in the collection, and this looks very similar to the UI that we saw in the editor. We have an internal ID, a name, a point, a set of coordinates, in GeoJSON format, the ride started, and the ride's ended. Now given that they all have an ID, you can also further break this down and perhaps just get a single item back. So this is now not an array anymore. It's just that single object. So that's stations. We also have individual rides. So once again, each one has an ID and all of that data we just saw. Right? All of that data we just saw. Station start and station end are IDs of, of the stations. Now you can further start to narrow this down by using Directus' filter language, filter filter syntax. So here, we are applying 2 filters. And all we're doing is saying, grab all of the rides that happened inside of the 3rd month. In this case, that's all of them because they're all in March, but that may not always be the case, and on the 7th day. So this is everything from the 7th March. You could further, of course, narrow this down to specific stations if you want or specific member types and so on and so forth. You can just add more filters on the end here. Now this final request is not so much about fetching data, but rather analyzing it using our aggregate and group by query parameters. And it's these which actually power the panels inside of Directus insights. So here we're saying, count all of the items and then group them by the day in which that ride was started. And what we get as a as a result is for every day, we get a count. So we get to say, hey. On the 1st March, there were 32,329 rights that took part inside of this dataset and so on and so forth. For every single day inside of this dataset, there is a, a different count. So that's a little bit about how you can use Directus Connect and the automatically generated APIs in order to explore the data either to actually query the data itself or run some analysis. So once again, I hope you found this interesting. And if you have an interesting dataset or know of an interesting dataset that we can use in a future episode, just reach out. I love to see it. Until next time. See you later.","003dfe29-aa33-4254-8f7c-81ffb324b087",[187],"9b19a43c-34bc-428e-b438-1ffa66f23523",[],{"id":133,"number":134,"show":122,"year":135,"episodes":190},[137,138,139],{"reps":192},[193,249],{"name":194,"sdr":8,"link":195,"countries":196,"states":198},"John Daniels","https://meet.directus.io/meetings/john2144/john-contact-form-meeting",[197],"United States",[199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248],"Michigan","Indiana","Ohio","West Virginia","Kentucky","Virginia","Tennessee","North Carolina","South Carolina","Georgia","Florida","Alabama","Mississippi","New York","MI","IN","OH","WV","KY","VA","TN","NC","SC","GA","FL","AL","MS","NY","Connecticut","CT","Delaware","DE","Maine","ME","Maryland","MD","Massachusetts","MA","New Hampshire","NH","New Jersey","NJ","Pennsylvania","PA","Rhode Island","RI","Vermont","VT","Washington DC","DC",{"name":250,"link":251,"countries":252},"Michelle Riber","https://meetings.hubspot.com/mriber",[253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,230,441,442],"Albania","ALB","Algeria","DZA","Andorra","AND","Angola","AGO","Austria","AUT","Belgium","BEL","Benin","BEN","Bosnia and Herzegovina","BIH","Botswana","BWA","Bulgaria","BGR","Burkina Faso","BFA","Burundi","BDI","Cameroon","CMR","Cape Verde","CPV","Central African Republic","CAF","Chad","TCD","Comoros","COM","Côte d'Ivoire","CIV","Croatia","HRV","Czech Republic","CZE","Democratic Republic of Congo","COD","Denmark","DNK","Djibouti","DJI","Egypt","EGY","Equatorial Guinea","GNQ","Eritrea","ERI","Estonia","EST","Eswatini","SWZ","Ethiopia","ETH","Finland","FIN","France","FRA","Gabon","GAB","Gambia","GMB","Ghana","GHA","Greece","GRC","Guinea","GIN","Guinea-Bissau","GNB","Hungary","HUN","Iceland","ISL","Ireland","IRL","Italy","ITA","Kenya","KEN","Latvia","LVA","Lesotho","LSO","Liberia","LBR","Libya","LBY","Liechtenstein","LIE","Lithuania","LTU","Luxembourg","LUX","Madagascar","MDG","Malawi","MWI","Mali","MLI","Malta","MLT","Mauritania","MRT","Mauritius","MUS","Moldova","MDA","Monaco","MCO","Montenegro","MNE","Morocco","MAR","Mozambique","MOZ","Namibia","NAM","Niger","NER","Nigeria","NGA","North Macedonia","MKD","Norway","NOR","Poland","POL","Portugal","PRT","Republic of Congo","COG","Romania","ROU","Rwanda","RWA","San Marino","SMR","São Tomé and Príncipe","STP","Senegal","SEN","Serbia","SRB","Seychelles","SYC","Sierra Leone","SLE","Slovakia","SVK","Slovenia","SVN","Somalia","SOM","South Africa","ZAF","South Sudan","SSD","Spain","ESP","Sudan","SDN","Sweden","SWE","Tanzania","TZA","Togo","TGO","Tunisia","TUN","Uganda","UGA","United Kingdom","GBR","Vatican City","VAT","Zambia","ZMB","Zimbabwe","ZWE","UK","Germany","Netherlands","Switzerland","CH","NL",1773850418182]