如何使用NASA公共API从NASA联邦机构获取数据

如何使用NASA公共API从NASA联邦机构获取数据

NASA太空机构公开了多种数据,包括图像和视频,供好奇的人们探索宇宙。使用他们的开放API可以探索这些数据,任何人都可以使用这些API来开发相关应用程序。以下方法介绍了如何使用开放的API获取NASA提供的数据。

如何生成API密钥来探索NASA数据?

要探索NASA的数据,我们需要生成API密钥。

第1步: 前往NASA的开放API网站生成API密钥 https://api.nasa.gov/ 并填写详细信息以获取Web服务。

第2步: 填写所有必填字段后,API密钥将如下所示生成。

如何使用NASA公共API从NASA联邦机构获取数据

只需复制并记录下您的API密钥,我们将在我们的JavaScript中使用此密钥从NASA门户获取数据。

第3步: 生成API密钥后,转到API浏览部分,浏览NASA机构提供的API服务。

为展示API功能以及如何在我们的网站中使用它,我们将使用APOD API,该API用于探索每日天文照片。 APOD是从NASA门户获取图片的API之一,APOD代表每日天文图片。

以下是用于获取数据的查询参数:

  • data: 要检索的APOD图像的日期。格式为YYYY-MM-DD, 默认值为today。
  • start_date: 请求日期范围数据时的开始日期。不能与日期一起使用。格式为YYYY-MM-DD,默认值为none。
  • end_date: 与start_date一起使用时的日期范围的结束日期。格式为YYYY-MM-DD, 默认值为today。
  • count: 如果指定了此参数,则返回随机选择的图像。不能与日期、start_date和end_date一起使用。格式为int,默认值为none。
  • thumbs: 返回数据视频缩略图的URL。如果APOD不是视频,此参数将被忽略。格式为bool, 默认值为false。
  • api_key: 用于扩展使用的api.nasa.gov密钥。格式为string,默认值为DEMO_KEY。

下面是一个示例查询:

https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY
JavaScript

第4步: 使用以下HTML和JavaScript代码,在网页上创建一个 index.html 文件来展示今日天文图片(APOD)。

<!DOCTYPE html>
<html>
 
<body>
    <h2>Astronomy Picture of the day</h2>
    <input type="date" id="date" onchange="getDate();">
    <h3 class="img-title" id="title"></h3>
    <em class="date" id="pic_date"></em>
    <img src="" alt="" id="apod_pic" class="img-apod">
    <p class="caption" id="caption"></p>
 
 
    <script type="text/javascript">
 
        // Declaration of variables
        var method = "GET";
        const key = 
        "U0PqJ5UprbVQExkXc7ZgsGVfIM7Z1O8Uiv7g2hOO";
 
        var url = 
        "https://api.nasa.gov/planetary/apod?api_key="
                + key + "&date=";
        var mode = true;
        var date;
 
        // Function definition to get date from
        // input box and supply in sendHttpRequest
        // function
        function getDate() {
            date = document.getElementById("date").value;
            console.log(date);
            sendHttpRequest(method, url + date, 
                mode).then((data) => {
                console.log(data);
                update(data);
            });
 
        }
 
        // Declaration of update function to 
        // display the fetched data on webpage 
        function update(data) {
            document.getElementById("pic_date")
                .innerHTML = data.date;
 
            document.getElementById("title")
                .innerHTML = data.title;
 
            document.getElementById("apod_pic")
                .src = data.url;
 
            document.getElementById("caption")
                .innerHTML = data.explanation;
            return data;
        }
 
        // Send request to nasa portal to data 
        // using the XMLHttpRequest 
        function sendHttpRequest(method, url, mode) {
            return new Promise((resolve, reject) => {
 
                var req = new XMLHttpRequest();
                req.onreadystatechange = function () {
                    if (this.readyState == 4) {
                        if (this.status == 200) {
                            var data = JSON
                                .parse(this.response);
                            console.log(data);
                            resolve(data);
                        }
                    }
                }
                req.open(method, url, mode);
                req.send();
            });
        }
    </script>
</body>
 
</html>
HTML

输出: 打开网页,选择以前的日期。选择日期后,将在页面上显示当天的天文图片,包括日期、标题和描述,如下所示。

如何使用NASA公共API从NASA联邦机构获取数据

结论: 这就是我们如何使用NASA开放的API从NASA门户网站获取数据。我们还可以使用其他服务,如EPIC(地球多色成像摄像头)、火星探测器以及图像和视频库。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册