{"id":46722,"date":"2022-11-04T00:00:00","date_gmt":"2022-11-04T07:00:00","guid":{"rendered":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/"},"modified":"2025-11-13T12:56:14","modified_gmt":"2025-11-13T20:56:14","slug":"using-griddb-to-analyze-distances-of-asteroids-to-earth","status":"publish","type":"post","link":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/","title":{"rendered":"Using GridDB to Analyze Distances of Asteroids to Earth"},"content":{"rendered":"<p>In this article, we will use GridDB to analyse how scientists decide whether or not asteroids are dangerous to Earth, that is, whether or not they will leave their orbit and land here on Earth, potentially harming the population.<\/p>\n<p>Full source code can be found here: <a href=\"https:\/\/github.com\/griddbnet\/Blogs\/tree\/asteroids_distance\">https:\/\/github.com\/griddbnet\/Blogs\/tree\/asteroids_distance<\/a><\/p>\n<h2>Exporting and Importing dataset using GridDB<\/h2>\n<p>GridDB is a highly scalable and optimized in-memory No SQL database that allows parallel processing for higher performance and efficiency, especially for time-series databases. We will be using GridDB&#8217;s node js client, which allows us to connect GridDB to node js and import or export data in real-time.<\/p>\n<p>These are the columns that are present in our dataset:<\/p>\n<ol>\n<li>id : ID given to the asteroids by NASA scientists.<\/li>\n<li>new_name : Names given to the asteroids by NASA scientists.<\/li>\n<li>est_diameter_min : The minimum estimated diameter of the asteroids.<\/li>\n<li>est_diameter_max : The maximum estimated diameter of the asteroids.<\/li>\n<li>relative_velocity : The relative velocity of the asteroids compared to Earth.<\/li>\n<li>miss_distance : Asteroids&#8217; distance away from the Earth.<\/li>\n<li>orbiting_body: Asteroids&#8217; orbital around the specific body.<\/li>\n<li>sentry_object: Whether the asteroid collided with other body (satellites, etc) in the space.<\/li>\n<li>absolute_magnitude: The magnitude of force by which they would hit the Earth according to their mass-force ratio.<\/li>\n<li>hazardous : Are the asteroids at hazardous range? (Outcome Variable)<\/li>\n<\/ol>\n<p>To upload the dataset to GridDB, we would read the CSV file that contains the data which is taken from <a href=\"https:\/\/www.kaggle.com\/datasets\/sameepvani\/nasa-nearest-earth-objects\">This Kaggle Dataset<\/a><\/p>\n<p>Now, we will create a GridDB container to pass our database schema to the GridDB to be able to generate the design of the database before inserting the row information. Next, we would insert our data into the GridDB. We have now successfully exported the dataset to the GridDB platform.<\/p>\n<p>On the other hand, to import the dataset from the GridDB platform, we will use TQL, GridDB&#8217;s query language similar to SQL. We will create a container and store the fetched data in it. The next step would be to extract the rows in order of the column info and save it into a data frame to use for data visualization and analysis.<\/p>\n<p>For the data visualization and analysis, we will be using the following library for NodeJS.<\/p>\n<ul>\n<li>DanfoJS &#8211; For working with DataFrames<\/li>\n<\/ul>\n<div class=\"clipboard\">\n<pre><code class=\"language-javascript\">var griddb = require('griddb_node');\n\nconst dfd = require(\"danfojs-node\")\nvar fs     = require('fs');\n\nconst createCsvWriter = require('csv-writer').createObjectCsvWriter;\nconst csvWriter = createCsvWriter({\n  path: 'out.csv',\n  header: [\n    {id: \"id\", title:\"id\"}, \n    {id: \"new_name\", title:\"new_name\"}, \n    {id: \"est_diameter_min\", title:\"est_diameter_min\"}, \n    {id: \"est_diameter_max\", title:\"est_diameter_max\"}, \n    {id: \"relative_velocity\", title:\"relative_velocity\"}, \n    {id: \"miss_distance\", title:\"miss_distance\"}, \n    {id: \"orbiting_body\" , title:\"orbiting_body\"}, \n    {id: \"sentry_object\", title:\"sentry_object\"}, \n    {id: \"absolute_magnitude\", title:\"absolute_magnitude\"}\n  ]\n});\n\nconst factory = griddb.StoreFactory.getInstance();\nconst store = factory.getStore({\n    \"host\": '239.0.0.1',\n    \"port\": 31999,\n    \"clusterName\": \"defaultCluster\",\n    \"username\": \"admin\",\n    \"password\": \"admin\"\n});\n\n\/\/ For connecting to the GridDB Server we have to make containers and specify the schema.\nconst conInfo = new griddb.ContainerInfo({\n    'name': \"neoanalysis\",\n    'columnInfoList': [\n      [\"name\", griddb.Type.STRING],\n      [\"id\", griddb.Type.INTEGER],\n        [\"new_name\", griddb.Type.STRING],\n        [\"est_diameter_min\", griddb.Type.DOUBLE],\n        [\"est_diameter_max\", griddb.Type.DOUBLE],\n        [\"relative_velocity\", griddb.Type.DOUBLE],\n        [\"miss_distance\", griddb.Type.DOUBLE],\n        [\"absolute_magnitude\", griddb.Type.DOUBLE]\n    ],\n    'type': griddb.ContainerType.COLLECTION, 'rowKey': true\n});\n\n\n\/\/ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\n\nconst csv = require('csv-parser');\n\nconst fs = require('fs');\nvar lst = []\nvar lst2 = []\nvar i =0;\nfs.createReadStream('.\/Dataset\/neo.csv')\n  .pipe(csv())\n  .on('data', (row) => {\n    lst.push(row);\n    console.log(lst);\n\n  })\n  .on('end', () => {\n    var container;\n    var idx = 0;\n    \n    for(let i=0;i&lt;lst.length;i++){\n\n\n    store.putContainer(conInfo, false)\n        .then(cont => {\n            container = cont;\n            return container.createIndex({ 'columnName': 'name', 'indexType': griddb.IndexType.DEFAULT });\n        })\n        .then(() => {\n            idx++;\n            container.setAutoCommit(false);\n            return container.put([String(idx), lst[i]['id'],lst[i][\"new_name\"],lst[i][\"est_diameter_min\"],lst[i][\"est_diameter_max\"],lst[i][\"relative_velocity\"],lst[i][\"miss_distance\"],lst[i][\"absolute_magnitude\"]]);\n        })\n        .then(() => {\n            return container.commit();\n        })\n       \n        .catch(err => {\n            if (err.constructor.name == \"GSException\") {\n                for (var i = 0; i &lt; err.getErrorStackSize(); i++) {\n                    console.log(\"[\", i, \"]\");\n                    console.log(err.getErrorCode(i));\n                    console.log(err.getMessage(i));\n                }\n            } else {\n                console.log(err);\n            }\n        });\n    \n    }\n    store.getContainer(\"neoanalysis\")\n    .then(ts => {\n        container = ts;\n      query = container.query(\"select *\")\n      return query.fetch();\n  })\n  .then(rs => {\n      while (rs.hasNext()) {\n\n\n          let rsNext = rs.next()\n\n          lst2.push(\n            \n            \n            {\n                'id': rsNext[1],\n                \"new_name\": rsNext[2],\n                \"est_diameter_min\": rsNext[3],\n                \"est_diameter_max\": rsNext[4],\n                \"relative_velocity\": rsNext[5],\n                \"miss_distance\": rsNext[6],\n                \"absolute_magnitude\": rsNext[7],\n            \n            }\n            \n          );\n          \n      }\n\n        csvWriter\n        .writeRecords(lst2)\n        .then(()=> console.log('The CSV file was written successfully'));\n\n      return \n  }).catch(err => {\n      if (err.constructor.name == \"GSException\") {\n          for (var i = 0; i &lt; err.getErrorStackSize(); i++) {\n              console.log(\"[\", i, \"]\");\n              console.log(err.getErrorCode(i));\n              console.log(err.getMessage(i));\n          }\n      } else {\n          console.log(err);\n      }\n  });   \n  \n  });\n<\/code><\/pre>\n<\/div>\n<h2>Data Analysis<\/h2>\n<p>We now check and load our dataset to conduct data analysis.<\/p>\n<p>Because orbiting_body and sentry_object have redundant values throughout the column and no unique value to aid us in our analysis, we would omit these two columns from our analysis, as shown below.<\/p>\n<p><a href=\"https:\/\/griddb.net\/wp-content\/uploads\/2022\/08\/Two_omitted_columns.png\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/griddb.net\/wp-content\/uploads\/2022\/08\/Two_omitted_columns.png\" alt=\"\" width=\"182\" height=\"783\" class=\"aligncenter size-full wp-image-28650\" srcset=\"\/wp-content\/uploads\/2022\/08\/Two_omitted_columns.png 182w, \/wp-content\/uploads\/2022\/08\/Two_omitted_columns-70x300.png 70w\" sizes=\"(max-width: 182px) 100vw, 182px\" \/><\/a><\/p>\n<p>We would load the csv file into the DataFrame variable(df) as shown below:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-javascript\">let df = await dfd.readCSV(\".\/out.csv\")<\/code><\/pre>\n<\/div>\n<p>Starting with our data analysis, we would first check the number of rows and columns in our dataset<\/p>\n<p>We have 90836 rows and 8 columns.<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-javascript\">console.log(df.shape)\n\n\/\/  Output\n\/\/ [ 90836, 8 ]<\/code><\/pre>\n<\/div>\n<p>Now to see the names of the columns after omitting two columns, as mentioned above, and the data types of the columns to get the idea of what the data represents:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-javascript\">console.log(df.columns)\n\n\/\/ Output\n\/\/ ['id','new_name', 'est_diameter_min', 'est_diameter_max', 'relative_velocity', 'miss_distance', 'absolute_magnitude', 'hazardous']<\/code><\/pre>\n<\/div>\n<div class=\"clipboard\">\n<pre><code class=\"language-javascript\">df.loc({columns:['id',\n'new_name',\n'est_diameter_min',\n'est_diameter_max',\n'relative_velocity',\n'miss_distance','absolute_magnitude',\n'hazardous']}).ctypes.print()\n\n\/\/  Output\n\/\/ \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n\/\/ \u2551 id                   \u2502 int64   \u2551\n\/\/ \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n\/\/ \u2551 new_name             \u2502 object  \u2551\n\/\/ \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n\/\/ \u2551 est_diameter_min     \u2502 float64 \u2551\n\/\/ \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n\/\/ \u2551 est_diameter_max     \u2502 float64 \u2551\n\/\/ \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n\/\/ \u2551 relative_velocity    \u2502 float64 \u2551\n\/\/ \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n\/\/ \u2551 miss_distance        \u2502 float64 \u2551\n\/\/ \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n\/\/ \u2551 absolute_magnitude   \u2502 float64 \u2551\n\/\/ \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n\/\/ \u2551 hazardous            \u2502 bool    \u2551\n\/\/ \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d<\/code><\/pre>\n<\/div>\n<p>We access the data from the GridDB container as follows:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-javascript\">    # Get the containers\n    obtained_data = gridstore.get_container(\"redwinequality\")\n    \n    # Fetch all rows - language_tag_container\n    query = obtained_data.query(\"select *\")<\/code><\/pre>\n<\/div>\n<p>We will now look at a summary of statistics for the columns mentioned below to check their minimums, maximums, means, standard deviations etc.<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-javascript\">df.loc({columns:['est_diameter_min','est_diameter_max','relative_velocity','miss_distance']}).describe().round(2).print()\n\n\/\/ Output\n\/\/ \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n\/\/ \u2551            \u2502 est_diameter_min  \u2502 est_diameter_max  \u2502 relative_velocity \u2502 miss_distance     \u2551\n\/\/ \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n\/\/ \u2551 count      \u2502 90836             \u2502 90836             \u2502 90836             \u2502 9.1e+04           \u2551\n\/\/ \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n\/\/ \u2551 mean       \u2502 0.13              \u2502 0.28              \u2502 48066             \u2502 3.71e+07          \u2551\n\/\/ \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n\/\/ \u2551 std        \u2502 0.29              \u2502 0.67              \u2502 25293             \u2502 2.24e+07          \u2551\n\/\/ \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n\/\/ \u2551 min        \u2502 0.00061           \u2502 0.0014            \u2502 203               \u2502 6.74e+03          \u2551\n\/\/ \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n\/\/ \u2551 median     \u2502 0.05              \u2502 0.11              \u2502 44190             \u2502 3.78e+07          \u2551\n\/\/ \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n\/\/ \u2551 max        \u2502 38                \u2502 85                \u2502 236990            \u2502 7.50e+07          \u2551\n\/\/ \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n\/\/ \u2551 variance   \u2502 8.91e-02          \u2502 4.45e-01          \u2502 6.40e+08          \u2502 4.99e+14          \u2551\n\/\/ \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d<\/code><\/pre>\n<\/div>\n<p>Now Plotting a Scatter Plot between Quality and the other Columns.<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-javascript\">## Scatter Plot between miss_distance and relative_velocity\nlet cols = [...cols]\ncols.pop('miss_distance')\nfor(let i = 0; i &lt; cols.length; i++)\n{\n    let data = [{\n        x: df[cols[i]].values,\n        y: df['miss_distance'].values,\n        type: 'scatter',\n        mode: 'markers'}];\n    let layout = {\n        height: 400,\n        width: 700,\n        title: 'Missing Distance from Earth vs '+cols[i],\n        xaxis: {title: cols[i]},\n        yaxis: {title: 'Miss Distance'}};\n    \/\/ There is no HTML element named `myDiv`, hence the plot is displayed below.\n    Plotly.newPlot('myDiv', data, layout);    \n}<\/code><\/pre>\n<\/div>\n<p>The plot for two example columns is below:<\/p>\n<p><a href=\"https:\/\/griddb.net\/wp-content\/uploads\/2022\/08\/Scatterplot.jpg\"><img decoding=\"async\" src=\"https:\/\/griddb.net\/wp-content\/uploads\/2022\/08\/Scatterplot.jpg\" alt=\"\" width=\"409\" height=\"264\" class=\"aligncenter size-full wp-image-28652\" srcset=\"\/wp-content\/uploads\/2022\/08\/Scatterplot.jpg 409w, \/wp-content\/uploads\/2022\/08\/Scatterplot-300x194.jpg 300w\" sizes=\"(max-width: 409px) 100vw, 409px\" \/><\/a><\/p>\n<p>The plot above shows that the two variables have a positive linear relationship with other, which means that the greater missing distance from Earth, the greater the relative velocity since the asteroid would not be under the gravitational effect of Earth.<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-javascript\">## Correlation plot of the columns to see how these variables or factors related to each other\ncorrelogram(data)<\/code><\/pre>\n<\/div>\n<p>The Correlation plot is below:<\/p>\n<p><a href=\"https:\/\/griddb.net\/wp-content\/uploads\/2022\/08\/Correlationplot.jpg\"><img decoding=\"async\" src=\"https:\/\/griddb.net\/wp-content\/uploads\/2022\/08\/Correlationplot.jpg\" alt=\"\" width=\"977\" height=\"501\" class=\"aligncenter size-full wp-image-28651\" srcset=\"\/wp-content\/uploads\/2022\/08\/Correlationplot.jpg 977w, \/wp-content\/uploads\/2022\/08\/Correlationplot-300x154.jpg 300w, \/wp-content\/uploads\/2022\/08\/Correlationplot-768x394.jpg 768w, \/wp-content\/uploads\/2022\/08\/Correlationplot-600x308.jpg 600w\" sizes=\"(max-width: 977px) 100vw, 977px\" \/><\/a><\/p>\n<p>The correlation plot above shows the values for the variables, and the higher the value, the closer the relationships are between them. Thus, it is clear that miss distance and relative velocity have the highest values (0.33), indicating that they are the two most crucial variables in determining the point of impact for asteroid on Earth. The same variables will, however, naturally have the strongest correlations among themselves, so we disregard the diagonal above in the correlation plot.<\/p>\n<h2>Conclusion<\/h2>\n<p>NASA scientists consider a variety of variables when determining whether or not an asteroid will strike the Earth, and if it does, they need to know the precise coordinates in order to save as many precious human lives as possible.<\/p>\n<p>Finally, all of this data analysis was done using GridDB because it facilitated quick access to and effective reading, writing, and storing of data.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we will use GridDB to analyse how scientists decide whether or not asteroids are dangerous to Earth, that is, whether or not they will leave their orbit and land here on Earth, potentially harming the population. Full source code can be found here: https:\/\/github.com\/griddbnet\/Blogs\/tree\/asteroids_distance Exporting and Importing dataset using GridDB GridDB is [&hellip;]<\/p>\n","protected":false},"author":41,"featured_media":28651,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[121],"tags":[],"class_list":["post-46722","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Using GridDB to Analyze Distances of Asteroids to Earth | GridDB: Open Source Time Series Database for IoT<\/title>\n<meta name=\"description\" content=\"In this article, we will use GridDB to analyse how scientists decide whether or not asteroids are dangerous to Earth, that is, whether or not they will\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using GridDB to Analyze Distances of Asteroids to Earth | GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"og:description\" content=\"In this article, we will use GridDB to analyse how scientists decide whether or not asteroids are dangerous to Earth, that is, whether or not they will\" \/>\n<meta property=\"og:url\" content=\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/\" \/>\n<meta property=\"og:site_name\" content=\"GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/griddbcommunity\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-04T07:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-13T20:56:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/wp-content\/uploads\/2022\/08\/Correlationplot.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"977\" \/>\n\t<meta property=\"og:image:height\" content=\"501\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"griddb-admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:site\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"griddb-admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/\"},\"author\":{\"name\":\"griddb-admin\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/4fe914ca9576878e82f5e8dd3ba52233\"},\"headline\":\"Using GridDB to Analyze Distances of Asteroids to Earth\",\"datePublished\":\"2022-11-04T07:00:00+00:00\",\"dateModified\":\"2025-11-13T20:56:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/\"},\"wordCount\":748,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2022\/08\/Correlationplot.jpg\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/\",\"url\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/\",\"name\":\"Using GridDB to Analyze Distances of Asteroids to Earth | GridDB: Open Source Time Series Database for IoT\",\"isPartOf\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2022\/08\/Correlationplot.jpg\",\"datePublished\":\"2022-11-04T07:00:00+00:00\",\"dateModified\":\"2025-11-13T20:56:14+00:00\",\"description\":\"In this article, we will use GridDB to analyse how scientists decide whether or not asteroids are dangerous to Earth, that is, whether or not they will\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/#primaryimage\",\"url\":\"\/wp-content\/uploads\/2022\/08\/Correlationplot.jpg\",\"contentUrl\":\"\/wp-content\/uploads\/2022\/08\/Correlationplot.jpg\",\"width\":977,\"height\":501},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website\",\"url\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/\",\"name\":\"GridDB: Open Source Time Series Database for IoT\",\"description\":\"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL\",\"publisher\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\",\"name\":\"Fixstars\",\"url\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"contentUrl\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"width\":200,\"height\":83,\"caption\":\"Fixstars\"},\"image\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/griddbcommunity\/\",\"https:\/\/x.com\/GridDBCommunity\",\"https:\/\/www.linkedin.com\/company\/griddb-by-toshiba\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/4fe914ca9576878e82f5e8dd3ba52233\",\"name\":\"griddb-admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5bceca1cafc06886a7ba873e2f0a28011a1176c4dea59709f735b63ae30d0342?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5bceca1cafc06886a7ba873e2f0a28011a1176c4dea59709f735b63ae30d0342?s=96&d=mm&r=g\",\"caption\":\"griddb-admin\"},\"url\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/author\/griddb-admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Using GridDB to Analyze Distances of Asteroids to Earth | GridDB: Open Source Time Series Database for IoT","description":"In this article, we will use GridDB to analyse how scientists decide whether or not asteroids are dangerous to Earth, that is, whether or not they will","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/","og_locale":"en_US","og_type":"article","og_title":"Using GridDB to Analyze Distances of Asteroids to Earth | GridDB: Open Source Time Series Database for IoT","og_description":"In this article, we will use GridDB to analyse how scientists decide whether or not asteroids are dangerous to Earth, that is, whether or not they will","og_url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/","og_site_name":"GridDB: Open Source Time Series Database for IoT","article_publisher":"https:\/\/www.facebook.com\/griddbcommunity\/","article_published_time":"2022-11-04T07:00:00+00:00","article_modified_time":"2025-11-13T20:56:14+00:00","og_image":[{"width":977,"height":501,"url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/wp-content\/uploads\/2022\/08\/Correlationplot.jpg","type":"image\/jpeg"}],"author":"griddb-admin","twitter_card":"summary_large_image","twitter_creator":"@GridDBCommunity","twitter_site":"@GridDBCommunity","twitter_misc":{"Written by":"griddb-admin","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/#article","isPartOf":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/"},"author":{"name":"griddb-admin","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/4fe914ca9576878e82f5e8dd3ba52233"},"headline":"Using GridDB to Analyze Distances of Asteroids to Earth","datePublished":"2022-11-04T07:00:00+00:00","dateModified":"2025-11-13T20:56:14+00:00","mainEntityOfPage":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/"},"wordCount":748,"commentCount":0,"publisher":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization"},"image":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2022\/08\/Correlationplot.jpg","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/","url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/","name":"Using GridDB to Analyze Distances of Asteroids to Earth | GridDB: Open Source Time Series Database for IoT","isPartOf":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/#primaryimage"},"image":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2022\/08\/Correlationplot.jpg","datePublished":"2022-11-04T07:00:00+00:00","dateModified":"2025-11-13T20:56:14+00:00","description":"In this article, we will use GridDB to analyse how scientists decide whether or not asteroids are dangerous to Earth, that is, whether or not they will","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-griddb-to-analyze-distances-of-asteroids-to-earth\/#primaryimage","url":"\/wp-content\/uploads\/2022\/08\/Correlationplot.jpg","contentUrl":"\/wp-content\/uploads\/2022\/08\/Correlationplot.jpg","width":977,"height":501},{"@type":"WebSite","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website","url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/","name":"GridDB: Open Source Time Series Database for IoT","description":"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL","publisher":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization","name":"Fixstars","url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/","url":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","contentUrl":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","width":200,"height":83,"caption":"Fixstars"},"image":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/griddbcommunity\/","https:\/\/x.com\/GridDBCommunity","https:\/\/www.linkedin.com\/company\/griddb-by-toshiba"]},{"@type":"Person","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/4fe914ca9576878e82f5e8dd3ba52233","name":"griddb-admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5bceca1cafc06886a7ba873e2f0a28011a1176c4dea59709f735b63ae30d0342?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5bceca1cafc06886a7ba873e2f0a28011a1176c4dea59709f735b63ae30d0342?s=96&d=mm&r=g","caption":"griddb-admin"},"url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/author\/griddb-admin\/"}]}},"_links":{"self":[{"href":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/wp-json\/wp\/v2\/posts\/46722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/wp-json\/wp\/v2\/comments?post=46722"}],"version-history":[{"count":1,"href":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/wp-json\/wp\/v2\/posts\/46722\/revisions"}],"predecessor-version":[{"id":51394,"href":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/wp-json\/wp\/v2\/posts\/46722\/revisions\/51394"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/wp-json\/wp\/v2\/media\/28651"}],"wp:attachment":[{"href":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/wp-json\/wp\/v2\/media?parent=46722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/wp-json\/wp\/v2\/categories?post=46722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/wp-json\/wp\/v2\/tags?post=46722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}