diff --git a/.gitignore b/.gitignore
index aafce56..3371b4b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -58,4 +58,9 @@ coverage.xml
*.py,cover
.hypothesis/
.pytest_cache/
-cover/
\ No newline at end of file
+cover/
+
+
+code/test.py
+code/test_2.py
+code/api_test.py
\ No newline at end of file
diff --git a/README.md b/README.md
index ed2406d..2e10d0d 100644
--- a/README.md
+++ b/README.md
@@ -1,332 +1,100 @@
-# Table of Contents
-* [Introduction](#nvidia-ai-workbench-introduction-)
- * [Project Description](#project-description)
- * [Supported Models](#table-1-default-supported-models-by-inference-mode)
-* [Quickstart](#quickstart)
- * [Prerequisites](#prerequisites)
- * [Tutorial: Using a Cloud Endpoint](#tutorial-using-a-cloud-endpoint)
-* [Troubleshooting](#troubleshooting)
-* [Advanced Tutorials](#advanced-tutorials)
- * [Tutorial 1: Using a Local GPU](#tutorial-1-using-a-local-gpu)
- * [Tutorial 2: Using a Remote Microservice](#tutorial-2-using-a-remote-microservice)
- * [Tutorial 3: Using a Local Microservice](#tutorial-3-using-a-local-microservice)
- * [Tutorial 4: Customizing the Gradio App](#tutorial-4-customizing-the-gradio-app)
-* [License](#license)
+# AI-griculture JM
+
+## Table Of Contents:
+- [Introduction](#introduction)
+- [About](#about)
+ - [Key Features](#key-features)
+ - [Impacts](#impacts)
+- [Installation and Setup](#installation-and-setup)
+ - [Requirements](#requirements)
+ - [Installation Steps](#installation-steps)
+ - [Troublshooting](#troubleshooting)
+ - [Contributing](#contributing)
+- [License](#license)
+- [Supporting](#supporting)
+
+## Introduction
+AI-griculture JM is a Jamaica-focused project built to operate as an AI-powered assistant that helps farmers and policymakers by leveraging local agricultural and environmental data.
+
+## About
+
+AI-griculture JM uses a Retrieval-Augmented Generation (RAG) for allowing Jamaican farmers, agronomists, and policymakers to chat with local agricultural reports, policy documents, weather forecasts, soil data and research papers. The assistant would retrieve relevant information from these documents in real-time and
+generate meaningful responses or recommendations based on user queries.
+
+### Key Features:
+
+ -
+ Document Retrieval:
+
- Use RAG to store and retrieve a wide range of documents in a private vector database, including:
+
+ - Government agricultural policy documents.
+
- Research papers on soil health, pest management, and crop growth.
+
- Weather forecasts and historical climate data.
+
- Local market trends and export reports for Jamaican crops.
+
+
+
+
+ Chat Interface:
+
+- Provide a chat interface where users can ask natural language questions (e.g., "What are the
+best practices for organic yam farming in Jamaica?" or "How will the upcoming drought
+affect coffee production?").
+
+-
+ RAG will retrieve relevant data from the embedded documents and generate clear, context
+aware answers.
+
+
+
+
+ Integration with Local Data:
+
+ - Incorporate specific data relevant to Jamaican agriculture, such as soil conditions, rainfall
+patterns, and pest outbreaks, to give personalized advice based on the farmer's location or
+crop type.
+
- Enable farmers to upload their own reports or observations for analysis.
+
+ Recommendation System:
+
+ - Suggest optimal planting dates, crop rotations, or irrigation schedules based on retrieved
+information from research documents or environmental data.
+
- Help policymakers assess the impact of climate change on agriculture or evaluate the
+effectiveness of existing policies.
+
+ Offline Capabilities:
+
+- Utilize NVIDIA AI Workbench’s offline functionality to ensure that farmers or users in
+remote areas with limited internet access can still query the assistant using locally stored
+data.
+
+
+
+### Impacts:
+
-# NVIDIA AI Workbench: Introduction [](https://nvidia.github.io/workbench-example-hybrid-rag/clone_me.html)
-
-
-
-
-
-
- :arrow_down: Download AI Workbench •
- :book: Read the Docs •
- :open_file_folder: Explore Example Projects •
- :rotating_light: Facing Issues? Let Us Know!
-**Note:** [NVIDIA AI Workbench](https://www.youtube.com/watch?v=ntMRzPzSvM4) is the easiest way to get this RAG app running.
-- NVIDIA AI Workbench is a free client application that you can install on your own machines.
-- It provides portable and reproducible dev environments by handling Git repos and containers for you.
-- Installing on a local system? Check out our guides here for [Windows](https://docs.nvidia.com/ai-workbench/user-guide/latest/installation/windows.html), [Local Ubuntu 22.04](https://docs.nvidia.com/ai-workbench/user-guide/latest/installation/ubuntu-local.html) and for [macOS 12 or higher](https://docs.nvidia.com/ai-workbench/user-guide/latest/installation/macos.html)
-- Installing on a remote system? Check out our guide for [Remote Ubuntu 22.04](https://docs.nvidia.com/ai-workbench/user-guide/latest/installation/ubuntu-remote.html)
-
-## Project Description
-This is an [NVIDIA AI Workbench](https://www.nvidia.com/en-us/deep-learning-ai/solutions/data-science/workbench/) project for developing a [Retrieval Augmented Generation](https://blogs.nvidia.com/blog/what-is-retrieval-augmented-generation/) application with a customizable Gradio Chat app. It lets you:
-* Embed your documents into a locally running vector database.
-* Run inference **locally** on a Hugging Face TGI server, in the **cloud** using NVIDIA inference endpoints, or using **microservices** via [NVIDIA Inference Microservices (NIMs)](https://www.nvidia.com/en-us/ai/):
- * 4-bit, 8-bit, and no quantization options are supported for locally running models served by TGI.
- * Other models may be specified to run locally using their Hugging Face tag.
- * Locally-running microservice option is supported for Docker users only.
-
-### Table 1 Default Supported Models by Inference Mode
-
-
-
-Expand this section for a full table on all supported models by inference mode.
-
-
- | Model | Local ([TGI](https://huggingface.co/docs/text-generation-inference/en/index)) | Cloud ([NVIDIA API Catalog](https://build.nvidia.com/explore/discover)) | Microservices ([NVIDIA NIMs](https://www.nvidia.com/en-us/ai/)) |
- | -------- | ----------------------------- | --------------- | ------------------------------ |
- | Llama3-ChatQA-1.5-8B | Y | Y | * |
- | Llama3-ChatQA-1.5-70B | | Y | * |
- | Nemotron-Mini-4B | | Y | * |
- | Nemotron-4-340B-Instruct | | Y | * |
- | Mistral-NeMo 12B Instruct | | Y | * |
- | Mistral-7B-Instruct-v0.1 | Y (gated) | | * |
- | Mistral-7B-Instruct-v0.2 | Y (gated) | Y | * |
- | Mistral-7B-Instruct-v0.3 | | Y | Y |
- | Mistral-Large | | Y | * |
- | Mixtral-8x7B-Instruct-v0.1 | | Y | Y |
- | Mixtral-8x22B-Instruct-v0.1 | | Y | Y |
- | Mamba Codestral 7B v0.1 | | Y | * |
- | Codestral-22B-Instruct-v0.1 | | Y | * |
- | Llama-2-7B-Chat | Y (gated) | | * |
- | Llama-2-13B-Chat | | | * |
- | Llama-2-70B-Chat | | Y | * |
- | Llama-3-8B-Instruct | Y (gated) | Y | Y (default) * |
- | Llama-3-70B-Instruct | | Y | Y |
- | Llama-3.1-8B-Instruct | | Y | * |
- | Llama-3.1-70B-Instruct | | Y | * |
- | Llama-3.1-405B-Instruct | | Y | * |
- | Gemma-2B | | Y | * |
- | Gemma-7B | | Y | * |
- | CodeGemma-7B | | Y | * |
- | Phi-3-Mini-4k-Instruct | | Y | * |
- | Phi-3-Mini-128k-Instruct | Y | Y | * |
- | Phi-3-Small-8k-Instruct | | Y | * |
- | Phi-3-Small-128k-Instruct | | Y | * |
- | Phi-3-Medium-4k-Instruct | | Y | * |
- | Phi-3-Medium-128k-Instruct | | Y | * |
- | Phi-3.5-Mini-Instruct | | Y | * |
- | Phi-3.5-MoE-Instruct | | Y | * |
- | Arctic | | Y | * |
- | Granite-8B-Code-Instruct | | Y | * |
- | Granite-34B-Code-Instruct | | Y | * |
- | Solar-10.7B-Instruct | | Y | * |
- | Jamba-1.5-Mini-Instruct | | Y | * |
- | Jamba-1.5-Large-Instruct | | Y | * |
-
-
-
-*NIM containers for LLMs are starting to roll out under [General Availability (GA)](https://catalog.ngc.nvidia.com/orgs/nim/teams/meta/containers/llama3-8b-instruct/tags). If you set up any accessible language model NIM running on another system, it is supported under Remote NIM inference inside this project. For Local NIM inference, this project provides a flow for setting up the default ``meta/llama3-8b-instruct`` NIM locally as an example. Advanced users may choose to swap this NIM Container Image out with other NIMs as they are released.
-
-# Quickstart
-This section demonstrates how to use this project to run RAG via **NVIDIA Inference Endpoints** hosted on the [NVIDIA API Catalog](https://build.nvidia.com/explore/discover). For other inference options, including local inference, see the [Advanced Tutorials](#advanced-tutorials) section for set up and instructions.
-
-## Prerequisites
-- An [NGC account](https://ngc.nvidia.com/signin) is required to generate an NVCF run key.
-- A valid NVCF key is required to access NVIDIA API endpoints. Generate a key on any NVIDIA API catalog model card, eg. [here](https://build.nvidia.com/mistralai/mistral-7b-instruct-v2) by clicking "Get API Key".
-
-## Tutorial: Using a Cloud Endpoint
-
-
-
-1. [Install and configure](#nvidia-ai-workbench) AI Workbench locally and open up AI Workbench. Select a location of your choice.
-2. Fork this repo into *your own* GitHub account.
-3. **Inside AI Workbench**:
- - Click **Clone Project** and enter the repo URL of your newly-forked repo.
- - AI Workbench will automatically clone the repo and build out the project environment, which can take several minutes to complete.
- - Upon `Build Complete`, navigate to **Environment** > **Secrets** > **NVCF_RUN_KEY** > **Configure** and paste in your NVCF run key as a project secret.
- - Select **Open Chat** on the top right of the AI Workbench window, and the Gradio app will open in a browser.
-4. **In the Gradio Chat app**:
- - Click **Set up RAG Backend**. This triggers a one-time backend build which can take a few moments to initialize.
- - Select the **Cloud** option, select a model family and model name, and submit a query.
- - To perform RAG, select **Upload Documents Here** from the right hand panel of the chat UI.
- - You may see a warning that the vector database is not ready yet. If so wait a moment and try again.
- - When the database starts, select **Click to Upload** and choose the text files to upload.
- - Once the files upload, the **Toggle to Use Vector Database** next to the text input box will turn on.
- - Now query your documents! What are they telling you?
- - To change the endpoint, choose a different model from the dropdown on the right-hand settings panel and continue querying.
-
----
-**Next Steps:**
-* If you get stuck, check out the ["Troubleshooting"](#troubleshooting) section.
-* For tutorials on other supported inference modes, check out the ["Advanced Tutorials"](#advanced-tutorials) section below. **Note:** All subsequent tutorials will assume ``NVCF_RUN_KEY`` is already configured with your credentials.
-
----
-
-# Troubleshooting
-
-Need help? Submit any questions, bugs, feature requests, and feedback at the Developer Forum for AI Workbench. The dedicated thread for this Hybrid RAG example project is located [here](https://forums.developer.nvidia.com/t/support-workbench-example-project-hybrid-rag/288565).
-
-### How do I open AI Workbench?
-- Make sure you [installed](#nvidia-ai-workbench) AI Workbench. There should be a desktop icon on your system. Double click it to start AI Workbench.
-
-
-
-### How do I clone this repo with AI Workbench?
-- Make sure you have opened AI Workbench.
-- Click on the **Local** location (or whatever location you want to clone into).
-- If this is your first project, click the green **Clone Existing Project** button.
- - Otherwise, click **Clone Project** in the top right
-- Drop in the repo URL, leave the default path, and click **Clone**.
-
-
-
-### I've cloned the project, but now nothing seems to be happening?
-- The container is likely building and can take several minutes.
-- Look at the very bottom of the Workbench window, you will see a **Build Status** widget.
-- Click it to expand the build output.
-- When the container is built, the widget will say `Build Ready`.
-- Now you can begin.
-
-
-
-### How do I start the Chat application?
-- Check that the container finished building.
-- When it finishes, click the green **Open Chat** button at the top right.
-
-
-
-### Something went wrong, how do I debug the Chat application?
-- Look at the bottom left of the AI Workbench window, you will see an **Output** widget.
-- Click it to expand the output.
-- Expand the dropdown, navigate to ``Applications`` > ``Chat``.
-- You can now view all debug messages in the Output window in real time.
-
-
-
-### How can I customize this project with AI Workbench?
-- Check that the container is built.
-- Then click the green **dropdown** next to the `Open Chat` button at the top right.
-- Select **JupyterLab** to start editing the code. Alternatively, you may configure VSCode support [here](https://docs.nvidia.com/ai-workbench/user-guide/latest/reference/applications/built-in/vs-code.html).
-
-
-
-# Advanced Tutorials
-This section shows you how to use different inference modes with this RAG project. For these tutorials, a GPU of at least 12 GB of vRAM is recommended. If you don't have one, go back to the [Quickstart Tutorial](#tutorial-using-a-cloud-endpoint) that shows how to use **Cloud Endpoints**.
-
-## Tutorial 1: Using a local GPU
-This tutorial assumes you already cloned this Hybrid RAG project to your AI Workbench. If not, please follow the beginning of the [Quickstart Tutorial](#tutorial-using-a-cloud-endpoint).
-
-
-
-### Additional Configurations
-
-#### Ungated Models
-The following models are _ungated_. These can be accessed, downloaded, and run locally inside the project with no additional configurations required:
- * [nvidia/Llama3-ChatQA-1.5-8B](https://huggingface.co/nvidia/Llama3-ChatQA-1.5-8B)
- * [microsoft/Phi-3-mini-128k-instruct](https://huggingface.co/microsoft/Phi-3-mini-128k-instruct)
-
-#### Gated models
-Some additional configurations in AI Workbench are required to run certain listed models. Unlike the previous tutorials, these configs are not added to the project by default, so please follow the following instructions closely to ensure a proper setup. Namely, a Hugging Face API token is required for running gated models locally. [See how to create a token here](https://huggingface.co/docs/hub/en/security-tokens).
-
-The following models are _gated_. Verify that ``You have been granted access to this model`` appears on the model cards for any models you are interested in running locally:
- * [Mistral-7B-Instruct-v0.1](https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.1)
- * [Mistral-7B-Instruct-v0.2](https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2)
- * [Llama-2-7b-chat-hf](https://huggingface.co/meta-llama/Llama-2-7b-chat-hf)
- * [Llama-3-8B-Instruct](https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct)
-
-Then, complete the following steps:
-1. If the project is already running, shut down the project environment under **Environment** > **Stop Environment**. This will ensure restarting the environment will incorporate all the below configurations.
-2. In AI Workbench, add the following entries under **Environment** > **Secrets**.
- * Your Hugging Face Token: This is used to clone the model weights locally from Hugging Face.
- * _Name_: ``HUGGING_FACE_HUB_TOKEN``
- * _Value_: (Your HF API Key)
- * _Description_: HF Token for cloning model weights locally
-3. **Rebuild** the project if needed to incorporate changes.
-
-**Note:** All subsequent tutorials will assume both ``NVCF_RUN_KEY`` and ``HUGGING_FACE_HUB_TOKEN`` are already configured with your credentials.
-
-### Inference
-
-1. Select the green **Open Chat** button on the top right the AI Workbench project window.
-2. Once the UI opens, click **Set up RAG Backend**. This triggers a one-time backend build which can take a few moments to initialize.
-3. Select the **Local System** inference mode under ``Inference Settings`` > ``Inference Mode``.
-4. Select a model from the dropdown on the right hand settings panel. You can filter by gated vs ungated models for convenience.
- * Ensure you have proper access permissions for the model; instructions are [here](https://github.com/NVIDIA/workbench-example-hybrid-rag?tab=readme-ov-file#additional-configurations).
- * You can also input a custom model from Hugging Face, following the same format. Careful, as not all models and quantization levels may be supported in the current TGI version!
-5. Select a quantization level. The recommended precision for your system will be pre-selected for you, but full, 8-bit, and 4-bit bitsandbytes precision levels are currently supported.
-
-##### Table 2 System Resources vs Model Size and Quantization
-
- | vRAM | System RAM | Disk Storage | Model Size & Quantization |
- |---------|------------|--------------|---------------------------|
- | >=12 GB | 32 GB | 40 GB | 7B & int4 |
- | >=24 GB | 64 GB | 40 GB | 7B & int8 |
- | >=40 GB | 64 GB | 40 GB | 7B & none |
-
-6. Select **Load Model** to pre-fetch the model. This will take up to several minutes to perform an initial download of the model to the project cache. Subsequent loads will detect this cached model.
-7. Select **Start Server** to start the inference server with your current local GPU. This may take a moment to warm up.
-8. Now, start chatting! Queries will be made to the model running on your local system whenever this inference mode is selected.
-
-### Using RAG
-
-9. In the right hand panel of the Chat UI select **Upload Documents Here**. Click to upload or drag and drop the desired text files to upload.
- * You may see a warning that the vector database is not ready yet. If so wait a moment and try again.
-10. Once the files upload, the **Toggle to Use Vector Database** next to the text input box will turn on by default.
-11. Now query your documents! To use a different model, stop the server, make your selections, and restart the inference server.
-
-## Tutorial 2: Using a Remote Microservice
-This tutorial assumes you already cloned this Hybrid RAG project to your AI Workbench. If not, please follow the beginning of the [Quickstart Tutorial](#tutorial-using-a-cloud-endpoint).
-
-
-
-### Additional Configurations
-
-* Set up your NVIDIA Inference Microservice (NIM) to run self-hosted on another system of your choice. The playbook to get started is located [here](https://docs.nvidia.com/nim/large-language-models/latest/getting-started.html). Remember the _model name_ (if not the ``meta/llama3-8b-instruct`` default) and the _ip address_ of this running microservice. Ports for NIMs are generally set to 8000 by default.
-* **Alternatively**, you may set up any other 3rd party supporting the OpenAI API Specification. One example is [Ollama](https://github.com/ollama/ollama/blob/main/README.md#building), as they support the [OpenAI API Spec](https://github.com/ollama/ollama/blob/main/docs/openai.md). Remember the _model name_, _port_, and the _ip address_ when you set this up.
-
-### Inference
-
-1. Select the green **Open Chat** button on the top right the AI Workbench project window.
-2. Once the UI opens, click **Set up RAG Backend**. This triggers a one-time backend build which can take a few moments to initialize.
-3. Select the **Self-hosted Microservice** inference mode under ``Inference Settings`` > ``Inference Mode``.
-4. Select the **Remote** tab in the right hand settings panel. Input the **IP address** of the accessible system running the microservice, **Port** if different from the 8000 default for NIMs, as well as the **model name** to run if different from the ``meta/llama3-8b-instruct`` default.
-5. Now start chatting! Queries will be made to the microservice running on a remote system whenever this inference mode is selected.
-
-### Using RAG
-
-6. In the right hand panel of the Chat UI select **Upload Documents Here**. Click to upload or drag and drop the desired text files to upload.
- * You may see a warning that the vector database is not ready yet. If so wait a moment and try again.
-7. Once uploaded successfully, the **Toggle to Use Vector Database** should turn on by default next to your text input box.
-8. Now you may query your documents!
-
-## Tutorial 3: Using a Local Microservice
-This tutorial assumes you already cloned this Hybrid RAG project to your AI Workbench. If not, please follow the beginning of the [Quickstart Tutorial](#tutorial-using-a-cloud-endpoint).
-
-
-
-Here are some important **PREREQUISITES**:
-* Your AI Workbench must be running with a **DOCKER** container runtime. Podman is unsupported.
-* You must have access to NeMo Inference Microservice (NIMs) [General Availability Program](https://catalog.ngc.nvidia.com/orgs/nim/teams/meta/containers/llama3-8b-instruct/tags).
-* Shut down any other processes running locally on the GPU as these may result in memory issues when running the microservice locally.
-
-### Additional Configurations
-Some additional configurations in AI Workbench are required to run this tutorial. Unlike the previous tutorials, these configs are not added to the project by default, so please follow the following instructions closely to ensure a proper setup.
-
-1. If running, shut down the project environment under **Environment** > **Stop Environment**. This will ensure restarting the environment will incorporate all the below configurations.
-2. In AI Workbench, add the following entries under **Environment** > **Secrets**:
- * Your NGC API Key: This is used to authenticate when pulling the NIM container from NGC. Remember, you must be in the General Availability Program to access this container.
- * _Name_: ``NGC_CLI_API_KEY``
- * _Value_: (Your NGC API Key)
- * _Description_: NGC API Key for NIM authentication
-3. Add and/or modify the following under **Environment** > **Variables**:
- * ``DOCKER_HOST``: location of your docker socket, eg. ``unix:///var/host-run/docker.sock``
- * ``LOCAL_NIM_HOME``: location of where your NIM files will be stored, for example ``/mnt/c/Users/`` for Windows or ``/home/`` for Linux
-4. Add the following under **Environment** > **Mounts**:
- * A Docker Socket Mount: This is a mount for the docker socket for the container to properly interact with the host Docker Engine.
- * _Type_: ``Host Mount``
- * _Target_: ``/var/host-run``
- * _Source_: ``/var/run``
- * _Description_: Docker socket Host Mount
- * A Filesystem Mount: This is a mount to properly run and manage your LOCAL_NIM_HOME on the host from inside the project container for generating the model repo.
- * _Type_: ``Host Mount``
- * _Target_: ``/mnt/host-home``
- * _Source_: (Your LOCAL_NIM_HOME location) , for example ``/mnt/c/Users/`` for Windows or ``/home/`` for Linux
- * _Description_: Host mount for LOCAL_NIM_HOME
-5. **Rebuild** the project if needed.
-
-### Inference
-1. Select the green **Open Chat** button on the top right the AI Workbench project window.
-2. Once the UI opens, click **Set up RAG Backend**. This triggers a one-time backend build which can take a few moments to initialize.
-3. Select the **Self-hosted Microservice** inference mode under ``Inference Settings`` > ``Inference Mode``.
-4. Select the **Local** sub-tab in the right hand settings panel.
-5. Bring your **NIM Container Image** (placeholder can be used as the default flow), and select **Prefetch NIM**. This one-time process can take a few moments to pull down the NIM container.
-6. Select **Start Microservice**. This may take a few moments to complete.
-7. Now, you can start chatting! Queries will be made to your microservice running on the local system whenever this inference mode is selected.
-
-### Using RAG
-
-8. In the right hand panel of the Chat UI select **Upload Documents Here**. Click to upload or drag and drop the desired text files to upload.
- * You may see a warning that the vector database is not ready yet. If so wait a moment and try again.
-9. Once uploaded successfully, the **Toggle to Use Vector Database** should turn on by default next to your text input box.
-10. Now you may query your documents!
+## Installation and Setup
+
-## Tutorial 4: Customizing the Gradio App
-By default, you may customize Gradio app using the jupyterlab container application. Alternatively, you may configure VSCode support [here](https://docs.nvidia.com/ai-workbench/user-guide/latest/reference/applications/built-in/vs-code.html).
+### - Requirements
+
+- See requirements at [NVIDIA Workbench Example Hybrid RAG](https://github.com/NVIDIA/workbench-example-hybrid-rag)
+
- 'requests' python library
+
- 'json' python library
+
-1. In AI Workbench, select the green **dropdown** from the top right and select **Open JupyterLab**.
-2. Go into the `code/chatui/` folder and start editing the files.
-3. Save the files.
-4. To see your changes, stop the Chat UI and restart it.
-5. To version your changes, commit them in the Workbench project window and push to your GitHub repo.
+### - Installation Steps
-In addition to modifying the Gradio frontend, you can also use the Jupyterlab or another IDE to customize other aspects of the project, eg. custom chains, backend server, scripts, configs, etc.
+
+- Clone this repository through NVIDIA AI Workbench - See [NVIDIA Workbench Example Hybrid RAG](https://github.com/NVIDIA/workbench-example-hybrid-rag) as a guide
+
- Click the "open chat" button to run the program
+
-# License
-This NVIDIA AI Workbench example project is under the [Apache 2.0 License](https://github.com/NVIDIA/workbench-example-hybrid-rag/blob/main/LICENSE.txt)
+### - Troubleshooting
+See troubleshooting steps at [NVIDIA Workbench Example Hybrid RAG](https://github.com/NVIDIA/workbench-example-hybrid-rag)
+
-This project may download and install additional third-party open source software projects. Review the license terms of these open source projects before use. Third party components used as part of this project are subject to their separate legal notices or terms that accompany the components. You are responsible for confirming compliance with third-party component license terms and requirements.
diff --git a/__init__.py b/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/blog.docx b/blog.docx
new file mode 100644
index 0000000..d40d4ce
Binary files /dev/null and b/blog.docx differ
diff --git a/code/__init__.py b/code/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/code/agriculture_data.json b/code/agriculture_data.json
new file mode 100644
index 0000000..bb84f7d
--- /dev/null
+++ b/code/agriculture_data.json
@@ -0,0 +1,1306 @@
+{
+ "status": "ok",
+ "totalResults": 5998,
+ "articles": [
+ {
+ "source": {
+ "id": null,
+ "name": "[Removed]"
+ },
+ "author": null,
+ "title": "[Removed]",
+ "description": "[Removed]",
+ "url": "https://removed.com",
+ "urlToImage": null,
+ "publishedAt": "2024-09-11T12:30:25Z",
+ "content": "[Removed]"
+ },
+ {
+ "source": {
+ "id": "business-insider",
+ "name": "Business Insider"
+ },
+ "author": "Erin Greenawald",
+ "title": "Crop loss is a huge problem for sustainability and food security. I'm using AI and computer vision to help fix it.",
+ "description": "Fermata's AI tech helps transform agriculture by detecting early signs of pests and diseases, reducing labor needs, and promoting sustainable farming.",
+ "url": "https://www.businessinsider.com/fermata-artificial-intelligence-technology-for-agriculture-plant-crop-health-2024-9",
+ "urlToImage": "https://i.insider.com/66d74af41d8d2deb96b843d8?width=1200&format=jpeg",
+ "publishedAt": "2024-09-03T19:05:12Z",
+ "content": "Aron Su\u0308veg; Getty Images; Alyssa Powell/BI\r\n- Valeria Kogan is the CEO of Fermata, a software-development company specializing in agriculture.
- Her team develops AI tools to reduce crop\u2026 [+6082 chars]"
+ },
+ {
+ "source": {
+ "id": "business-insider",
+ "name": "Business Insider"
+ },
+ "author": "Kwan Wei Kevin Tan",
+ "title": "Mark Cuban says Trump's call for 200% tariffs on John Deere tractors is 'insane' and a 'good way to destroy a legendary American company'",
+ "description": "The former president said he will impose a 200% tariff on agriculture equipment company John Deere if they move their manufacturing to Mexico.",
+ "url": "https://www.businessinsider.com/mark-cuban-trump-call-200-percent-tariffs-john-deere-insane-2024-9",
+ "urlToImage": "https://i.insider.com/66f2175ad17aa3c7b2b54cef?width=1200&format=jpeg",
+ "publishedAt": "2024-09-24T03:52:59Z",
+ "content": "\"Good way to destroy a legendary American company and increase costs to American buyers,\" Mark Cuban said of former President Donald Trump's call for 200% tariffs on agriculture equipment company Joh\u2026 [+3411 chars]"
+ },
+ {
+ "source": {
+ "id": "the-next-web",
+ "name": "The Next Web"
+ },
+ "author": "Si\u00f4n Geschwindt",
+ "title": "Big wave surfer emerges from the barrel with $120M fund for regenerative agriculture",
+ "description": "What do the Rothschilds, big wave surfing, and cows have in common? A Portuguese man by the name of Francisco Roque de Pinho, of course. Francisco used to be a banker at Rothschild, the most famous of European banking dynasties. For the past eight years he\u2019s \u2026",
+ "url": "https://thenextweb.com/news/big-wave-surfer-emerges-from-the-barrel-with-120m-fund-for-regenerative-agriculture",
+ "urlToImage": "https://img-cdn.tnwcdn.com/image/tnw-blurple?filter_last=1&fit=1280%2C640&url=https%3A%2F%2Fcdn0.tnwcdn.com%2Fwp-content%2Fblogs.dir%2F1%2Ffiles%2F2024%2F09%2Fbig-wave-surfer-launches-fund.jpg&signature=325a537f2bfb6e23d4b541d7076a4d33",
+ "publishedAt": "2024-09-27T14:54:09Z",
+ "content": "What do the Rothschilds, big wave surfing, and cows have in common? A Portuguese man by the name of Francisco Roque de Pinho, of course.\r\nFrancisco used to be a banker at Rothschild, the most famous \u2026 [+2614 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "NPR"
+ },
+ "author": "Danny McArthur",
+ "title": "These small Black-owned farms are growing crops with the climate in mind",
+ "description": "Across the Gulf South, small Black-owned farms are finding ways to use climate-friendly practices to grow crops while also addressing long-standing injustices.",
+ "url": "https://www.npr.org/2024/09/12/nx-s1-5002077/small-black-owned-farms-climate-change-smart-agriculture",
+ "urlToImage": "https://npr.brightspotcdn.com/dims3/default/strip/false/crop/3000x1688+0+0/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2F29%2F3a%2F7b6afc564f7baaba5b9a0ddee452%2Fdriftwoodfarms-louisiana-lesliegamboni22.jpg",
+ "publishedAt": "2024-09-12T10:00:00Z",
+ "content": "Climate change is affecting our food, and our food is affecting the climate.\u00a0NPR is dedicating a week to\u00a0stories and conversations\u00a0about the search for solutions.\r\nA number of small Black-owned farms\u2026 [+6629 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "KHON2"
+ },
+ "author": "Lucy Lopez",
+ "title": "Big problem for Big Island, coconut rhinoceros beetle found",
+ "description": "A single coconut rhinoceros beetle (CRB) was discovered this week in a trap set by the Hawaii Department of Agriculture (HDOA) during routine monitoring in...",
+ "url": "https://www.khon2.com/local-news/big-problem-for-big-island-coconut-rhinoceros-beetle-found/",
+ "urlToImage": "https://media.zenfs.com/en/khon_honolulu_articles_660/a29f84941511f78040999308091ce48d",
+ "publishedAt": "2024-09-21T21:13:30Z",
+ "content": "HONOLULU (KHON2) A single coconut rhinoceros beetle (CRB) was discovered this week in a trap set by the Hawaii Department of Agriculture (HDOA) during routine monitoring in Waikoloa.\r\nGet Hawaiis lat\u2026 [+2900 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "BBC News"
+ },
+ "author": null,
+ "title": "More than 80 dead in Vietnam super typhoon",
+ "description": "The most powerful storm to hit the country in 30 years has also left thousands stranded.",
+ "url": "https://www.bbc.com/news/articles/cql3qvg3vk9o",
+ "urlToImage": "https://ichef.bbci.co.uk/news/1024/branded_news/9cab/live/871fc9a0-6f57-11ef-a017-7b405a77e7bd.jpg",
+ "publishedAt": "2024-09-10T10:14:53Z",
+ "content": "At least 82 people have now died in Vietnam as a super typhoon which hit on Saturday continues to bring heavy rainfall, landslides and flooding.\r\nThousands of people were seen stranded on rooftops in\u2026 [+1785 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Slashdot.org"
+ },
+ "author": "msmash",
+ "title": "Europe's Farming Lobbies Recognize Need To Eat Less Meat in Shared Vision Report",
+ "description": "Europe's food and farming lobbies have recognized the need to eat less meat after hammering out a shared vision for the future of agriculture with green groups and other stakeholders. From a report: The wide-ranging report calls for \"urgent, ambitious and fea\u2026",
+ "url": "https://news.slashdot.org/story/24/09/04/1449256/europes-farming-lobbies-recognize-need-to-eat-less-meat-in-shared-vision-report",
+ "urlToImage": "https://a.fsdn.com/sd/topics/earth_64.png",
+ "publishedAt": "2024-09-04T15:25:00Z",
+ "content": "The wide-ranging report calls for \"urgent, ambitious and feasible\" change in farm and food systems and acknowledges that Europeans eat more animal protein than scientists recommend. It says support i\u2026 [+1400 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "NPR"
+ },
+ "author": "Anna Canny",
+ "title": "Climate change makes farming easier in Alaska. Indigenous growers hope to lead the way",
+ "description": "Climate change threatens many traditional foods in Alaska. But it\u2019s also making farming more possible. A new training program aims to help Alaska Native communities grow more of their own food.",
+ "url": "https://www.npr.org/2024/09/13/nx-s1-5002049/climate-change-farming-alaska-native",
+ "urlToImage": "https://npr.brightspotcdn.com/dims3/default/strip/false/crop/6000x3375+0+313/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2F04%2Fba%2Fa0ad05ad44009f8b2215faff9eaf%2Fimg-9592.JPG",
+ "publishedAt": "2024-09-13T16:01:47Z",
+ "content": "Climate change is affecting our food, and our food is affecting the climate. NPR is dedicating a week to\u00a0stories and conversations about the search for solutions.\r\nGrowing up in rural Alaska, Eva Daw\u2026 [+8821 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Gizmodo.com"
+ },
+ "author": "Matt Novak",
+ "title": "Boar\u2019s Head Shuts Down Virginia Meat Plant After 9 Deaths Linked to Listeria",
+ "description": "\"This is a dark moment in our company\u2019s history,\" Boar's Head said in a statement.",
+ "url": "https://gizmodo.com/boars-head-shuts-down-virginia-meat-plant-after-9-deaths-linked-to-listeria-2000498683",
+ "urlToImage": "https://gizmodo.com/app/uploads/2024/09/boars-head-meat-recall-virginia-deaths.jpg",
+ "publishedAt": "2024-09-13T18:00:42Z",
+ "content": "Boar\u2019s Head is permanently closing its deli meat plant in Jarratt, Virginia, after a listeria outbreak that\u2019s killed nine people so far and sickened dozens of others in 18 states, according to a Frid\u2026 [+2785 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "NPR"
+ },
+ "author": "The NPR Network",
+ "title": "How we grow food affects the climate. Here are solutions communities are taking to help",
+ "description": "We've gathered examples from across the NPR Network of how we can change the food we grow to support climate goals.",
+ "url": "https://www.npr.org/2024/09/14/g-s1-22158/climate-food-farming-solution",
+ "urlToImage": "https://npr.brightspotcdn.com/dims3/default/strip/false/crop/5205x2928+0+263/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2Fa6%2Ff2%2F15103f88464ebb6b197776de4f09%2Fgettyimages-2166486728.jpg",
+ "publishedAt": "2024-09-14T18:00:00Z",
+ "content": "Climate change is affecting our food, and our food is affecting the climate.\u00a0NPR is dedicating a week to\u00a0stories and conversations about the search for solutions.\r\nAs NPR's climate solutions reporter\u2026 [+4249 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Gizmodo.com"
+ },
+ "author": "Isaac Schultz",
+ "title": "Japan Exterminates Killer Mongooses That Just Had One Job",
+ "description": "The mammals were brought onto an island to cull venomous snakes, but only had eyes for the island's endangered rabbits.",
+ "url": "https://gizmodo.com/japan-exterminates-killer-mongooses-that-just-had-one-job-2000494699",
+ "urlToImage": "https://gizmodo.com/app/uploads/2024/09/small-indian-mongoose.jpg",
+ "publishedAt": "2024-09-04T18:10:41Z",
+ "content": "Mongooses deployed on a small Japanese island to cull a population of venomous snakes have themselves been culled by the state, after the mammals insisted on eating the local endangered rabbits.\r\nMon\u2026 [+2821 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Gizmodo.com"
+ },
+ "author": "Matt Novak",
+ "title": "Hackers Threaten to Release Stolen Data From Planned Parenthood of Montana",
+ "description": "The hack comes after abortion rights advocates in Montana secured enough signatures to put the issue on the ballot in November.",
+ "url": "https://gizmodo.com/hackers-threaten-to-release-stolen-data-from-planned-parenthood-of-montana-2000495211",
+ "urlToImage": "https://gizmodo.com/app/uploads/2024/09/planned-parenthood-getty.jpg",
+ "publishedAt": "2024-09-05T17:30:37Z",
+ "content": "Planned Parenthood of Montana announced on Wednesday a \u201ccybersecurity incident\u201d that was first identified on August 28, according to a new report from Cyberscoop. The healthcare organization had roug\u2026 [+3385 chars]"
+ },
+ {
+ "source": {
+ "id": "business-insider",
+ "name": "Business Insider"
+ },
+ "author": "Callum Burroughs",
+ "title": "Solasta Bio, a Scottish startup replacing insecticides with greener alternatives, raised $14 million with this pitch deck",
+ "description": "Solasta Bio, a Scottish startup targeting insects that damage crops, has raised funding to expand to the US.",
+ "url": "https://www.businessinsider.com/solasta-bio-agriculture-biohealth-startup-raises-vc-funding-2024-9",
+ "urlToImage": "https://i.insider.com/66e0615283b8099cf9fd203d?width=1200&format=jpeg",
+ "publishedAt": "2024-09-11T07:00:02Z",
+ "content": "Shireen Davies, CEO and cofounder at Solasta Bio.Andrew Cawley\r\n
- Solasta Bio, an agriculture tech startup, raised $14 million in Series A funding.
- Solasta specializes in green insectic\u2026 [+2354 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "NPR"
+ },
+ "author": "NPR",
+ "title": "Climate Solutions Week: The future of food",
+ "description": "Climate change is affecting our food, and our food is affecting the climate.\u00a0NPR is dedicating a week to stories and conversations about the search for solutions, from how we farm to what we cook to reducing food waste.",
+ "url": "https://www.npr.org/2024/09/06/g-s1-19303/food-climate-solutions",
+ "urlToImage": "https://npr.brightspotcdn.com/dims3/default/strip/false/crop/1920x1080+0+0/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2F6d%2F17%2Fd0c9d0a84e9fb49edb49df2ede3b%2Fclimatesolutions5.jpg",
+ "publishedAt": "2024-09-06T16:48:31Z",
+ "content": "September 9-15, 2024\r\nClimate experts say when it comes to global warming, pay attention to what we eat. Food and agriculture make up more than 25% of the pollution that heats our planet. What's driv\u2026 [+789 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Slashdot.org"
+ },
+ "author": "BeauHD",
+ "title": "Kenya, US Sign Historic Pact On Nuclear Plans",
+ "description": "Kenya signed a Memorandum of Understanding (MoU) with the U.S. on nuclear technology cooperation during the 2024 IAEA General Conference in Vienna, with the aim of safely integrating nuclear power into Kenya's energy mix by 2035. The agreement focuses on coll\u2026",
+ "url": "https://hardware.slashdot.org/story/24/09/19/0048203/kenya-us-sign-historic-pact-on-nuclear-plans",
+ "urlToImage": "https://a.fsdn.com/sd/topics/power_64.png",
+ "publishedAt": "2024-09-19T10:00:00Z",
+ "content": "The historic pact came a day after Prime Cabinet Secretary Musalia Mudavadi addressed the general session of the conference. Mudavadi had outlined Kenya's ambitious plans to integrate nuclear power i\u2026 [+1343 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Gizmodo.com"
+ },
+ "author": "Matt Novak",
+ "title": "Dems Call for Criminal Investigation in Boar\u2019s Head Listeria Outbreak That\u2019s Killed 10",
+ "description": "The CDC warns it can take 10 weeks for some people to develop symptoms from listeria.",
+ "url": "https://gizmodo.com/dems-call-for-criminal-investigation-in-boars-head-listeria-outbreak-thats-killed-10-2000504668",
+ "urlToImage": "https://gizmodo.com/app/uploads/2024/09/boars-head-meat-getty.jpg",
+ "publishedAt": "2024-09-28T12:00:48Z",
+ "content": "Two Democratic politicians have called for federal agencies to open a criminal investigation into the Boar\u2019s Head listeria outbreak that\u2019s killed 10 people and caused 59 hospitalizations in 19 states\u2026 [+4229 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Science Daily"
+ },
+ "author": null,
+ "title": "Impact of climate change on agriculture suggests even greater challenges to the environment, global food supply and public health",
+ "description": "A sweeping global research review of the links between climate and agriculture reveals the likelihood of an emergent feedback loop whereby, as climate change puts more pressure on the global food supply, agriculture will, by necessity, adopt practices that ma\u2026",
+ "url": "https://www.sciencedaily.com/releases/2024/09/240912135716.htm",
+ "urlToImage": "https://www.sciencedaily.com/images/scidaily-icon.png",
+ "publishedAt": "2024-09-12T17:57:16Z",
+ "content": "A sweeping global research review of the links between climate and agriculture reveals the likelihood of an emergent feedback loop whereby, as climate change puts more pressure on the global food sup\u2026 [+3776 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Science Daily"
+ },
+ "author": null,
+ "title": "Low-carbon ammonia offers green alternative for agriculture and hydrogen transport",
+ "description": "A new way of making ammonia by harnessing the unique power of liquid metal could lead to significant cuts in carbon emissions caused by production of the widely-used chemical. Ammonia is used in fertilizer to grow much of our food, but also plays a role in cl\u2026",
+ "url": "https://www.sciencedaily.com/releases/2024/09/240919115018.htm",
+ "urlToImage": "https://www.sciencedaily.com/images/scidaily-icon.png",
+ "publishedAt": "2024-09-19T15:50:18Z",
+ "content": "A new way of making ammonia by harnessing the unique power of liquid metal could lead to significant cuts in carbon emissions caused by production of the widely-used chemical.Ammonia is used in ferti\u2026 [+4452 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Yahoo Entertainment"
+ },
+ "author": "Reuters",
+ "title": "Russia declares farm emergency in Tomsk region because of crop damage",
+ "description": "Russia has introduced a state of emergency for the farm sector in the Tomsk region of Siberia because of weather damage to crops, the regional governor said ...",
+ "url": "https://finance.yahoo.com/news/russia-declares-farm-emergency-tomsk-103754516.html",
+ "urlToImage": "https://s.yimg.com/cv/apiv2/social/images/yahoo_default_logo-1200x1200.png",
+ "publishedAt": "2024-09-06T10:37:54Z",
+ "content": "MOSCOW (Reuters) - Russia has introduced a state of emergency for the farm sector in the Tomsk region of Siberia because of weather damage to crops, the regional governor said on Friday.\r\nVladimir Ma\u2026 [+1191 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Yahoo Entertainment"
+ },
+ "author": "AFP",
+ "title": "Vietnam president reiterates support for Cuba during official visit",
+ "description": "Cuban President Miguel Diaz-Canel held talks with his Vietnamese counterpart To Lam in Havana on Thursday, with the two countries signing several bilateral...",
+ "url": "https://www.yahoo.com/news/vietnam-president-reiterates-support-cuba-023625983.html",
+ "urlToImage": "https://media.zenfs.com/en/afp.com/ff528bf9ba5d18bb8ec1f92e3e1dfac2",
+ "publishedAt": "2024-09-27T02:36:25Z",
+ "content": "Cuban President Miguel Diaz-Canel held talks with his Vietnamese counterpart To Lam in Havana on Thursday, with the two countries signing several bilateral agreements during the visit.\r\n\"The world ha\u2026 [+1394 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "NPR"
+ },
+ "author": "The Associated Press",
+ "title": "France's Macron names EU's Brexit negotiator Michel Barnier as prime minister",
+ "description": "The appointment ends 50 days of caretaker government, but the choice has already angered left wing lawmakers, who say the conservative Barnier won't get a majority backing in the National Assembly.",
+ "url": "https://www.npr.org/2024/09/05/nx-s1-5101536/france-prime-minister-michel-barnier",
+ "urlToImage": "https://npr.brightspotcdn.com/dims3/default/strip/false/crop/6720x3780+0+350/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2F84%2Fe1%2F3fe914a741948badf9d69009b67c%2Fap24249414418011.jpg",
+ "publishedAt": "2024-09-05T12:48:32Z",
+ "content": "PARIS President Emmanuel Macron named the EUs Brexit negotiator, Michel Barnier, as Frances new prime minister on Thursday after more than 50 days of caretaker government.\r\nThe appointment of the 73-\u2026 [+2229 chars]"
+ },
+ {
+ "source": {
+ "id": "ars-technica",
+ "name": "Ars Technica"
+ },
+ "author": "Beth Mole",
+ "title": "Bird flu is spreading rapidly in California; infected herds double over weekend",
+ "description": "The state reported its first infected herds on August 30.",
+ "url": "https://arstechnica.com/science/2024/09/bird-flu-is-spreading-rapidly-in-california-infected-herds-double-over-weekend/",
+ "urlToImage": "https://cdn.arstechnica.net/wp-content/uploads/2024/09/GettyImages-2151866021-760x380.jpg",
+ "publishedAt": "2024-09-23T22:43:34Z",
+ "content": "Enlarge/ Cows being milked in Wisconsin on May 8, 2024.\r\n0\r\nThe H5N1 bird flu appears to be stampeding through dairy farms in California, the country's largest milk producer. Over the weekend, the to\u2026 [+3592 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Dezeen"
+ },
+ "author": "Dezeen staff",
+ "title": "Seven architecture and design projects by students at Kean University",
+ "description": "Dezeen School Shows: a community centre that promotes education and agriculture initiatives is included in this school show by students at Kean University. Also included is a redesign of a playground in Rome, Italy, and a clinic for children with ADHD. Kean U\u2026",
+ "url": "https://www.dezeen.com/2024/09/07/kean-unviersity-student-projects-dezeen-schoolshows/",
+ "urlToImage": "https://static.dezeen.com/uploads/2024/08/kean-unversity-hero-sq-dezeen-schoolshows_dezeen_2364_col_1-600x600.jpg",
+ "publishedAt": "2024-09-07T16:00:24Z",
+ "content": "Dezeen School Shows: a community centre that promotes education and agriculture initiatives is included in this school show by students at Kean University. \r\nAlso included is a redesign of a playgrou\u2026 [+9257 chars]"
+ },
+ {
+ "source": {
+ "id": "the-next-web",
+ "name": "The Next Web"
+ },
+ "author": "Ioanna Lykiardopoulou",
+ "title": "UK \u2018moonshot\u2019 agency to splash \u00a381M on warning system for climate catastrophes",
+ "description": "The UK\u2019s Advanced Research and Invention Agency (ARIA) is allocating \u00a381mn to a new programme that aims to create early warning systems for climate tipping points. These are thresholds within the Earth\u2019s climate ecosystem, which \u2014 if crossed \u2014 can trigger dev\u2026",
+ "url": "https://thenextweb.com/news/uk-splash-81m-warning-system-climate-catastrophes",
+ "urlToImage": "https://img-cdn.tnwcdn.com/image/tnw-blurple?filter_last=1&fit=1280%2C640&url=https%3A%2F%2Fcdn0.tnwcdn.com%2Fwp-content%2Fblogs.dir%2F1%2Ffiles%2F2024%2F09%2FUntitled-design-30.jpg&signature=8474a6a371fb036cfab6fccb6788bccb",
+ "publishedAt": "2024-09-04T13:25:06Z",
+ "content": "The UKs Advanced Research and Invention Agency (ARIA) is allocating \u00a381mn to a new programme that aims to create early warning systems for climate tipping points.\r\nThese are thresholds within the Ear\u2026 [+2733 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "PNAS Nexus",
+ "title": "Silage production changes could cut greenhouse gas emissions from agriculture",
+ "description": "Changes in silage production could help cut greenhouse gas emissions from agriculture. Agriculture is the largest source of nitrous oxide (N2O) emissions in the United States. N2O is the third most impactful greenhouse gas, yet one potential source\u2014silage\u2014has\u2026",
+ "url": "https://phys.org/news/2024-09-silage-production-greenhouse-gas-emissions.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/hires/2024/greenhouse-gas-emissio-1.jpg",
+ "publishedAt": "2024-09-24T13:12:02Z",
+ "content": "Changes in silage production could help cut greenhouse gas emissions from agriculture. Agriculture is the largest source of nitrous oxide (N2O) emissions in the United States. N2O is the third most i\u2026 [+2119 chars]"
+ },
+ {
+ "source": {
+ "id": "business-insider",
+ "name": "Business Insider"
+ },
+ "author": "Aditi Bharade",
+ "title": "Whole Foods' CEO is betting that Gen Z will be down to fork out more cash for his company's groceries",
+ "description": "Over half of the Gen Zers surveyed by Whole Foods said they were willing to pay more for sustainably grown food, CEO Jason Buechel said.",
+ "url": "https://www.businessinsider.com/whole-foods-ceo-says-fate-of-food-business-gen-zers-2024-9",
+ "urlToImage": "https://i.insider.com/66f37c1ecfb7f307e574b15e?width=1200&format=jpeg",
+ "publishedAt": "2024-09-25T07:47:54Z",
+ "content": "Whole Foods CEO Jason Buechel.Riccardo Savi/Getty Images\r\n
- Whole Foods CEO Jason Buechel said the grocery chain is listening to the needs of Gen Z.
- He said the company had conducted re\u2026 [+2962 chars]"
+ },
+ {
+ "source": {
+ "id": "business-insider",
+ "name": "Business Insider"
+ },
+ "author": "Hannah Abraham,Thibault Spirlet",
+ "title": "Japan's new prime minister could try to shake up the country's military pact with the US",
+ "description": "Shigeru Ishiba, a former defense minister, wants the have a more equal partnership with the US. He will be elected prime minister of Japan next week.",
+ "url": "https://www.businessinsider.com/japan-prime-minister-shigeru-ishiba-shake-up-us-military-pact-2024-9",
+ "urlToImage": "https://i.insider.com/66f67ca1f9f6733e4be02e6c?width=1200&format=jpeg",
+ "publishedAt": "2024-09-27T10:11:34Z",
+ "content": "Shigeru Ishiba will become Japan's next prime minister. The 67-year-old narrowly won the presidency of the ruling Liberal Democratic Party (LDP) on Friday.Pool/Getty Images\r\n
- Shigeru Ishiba is\u2026 [+2940 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Yahoo Entertainment"
+ },
+ "author": "Leo Collis",
+ "title": "Scientists issue PSA after discovering highly invasive NYC species capable of spreading across entire East Coast: 'We're talking about a big, big issue here'",
+ "description": "\"It\u2019s not like just a crazy ant running around Manhattan.\"",
+ "url": "https://www.yahoo.com/news/scientists-issue-psa-discovering-highly-103039627.html",
+ "urlToImage": "https://s.yimg.com/ny/api/res/1.2/pDFIym24Fka1rg.duSHU7Q--/YXBwaWQ9aGlnaGxhbmRlcjt3PTEyMDA7aD02NzU-/https://media.zenfs.com/en/the_cool_down_737/1a44e731f7acc1df040a1021b5d00250",
+ "publishedAt": "2024-09-11T10:30:39Z",
+ "content": "Even the smallest creature can have a huge impact, as one species of ant is demonstrating in New York City.\r\nWhat's happening?\r\nSince first being spotted in the Big Apple in 2011, the Lasius emargina\u2026 [+2178 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "SciencePOD",
+ "title": "Assessing the environmental impacts of Brazil's biofuel sector",
+ "description": "Mathematical analysis reveals that within Brazil's agriculture and livestock industry, the biofuels sector is most heavily reliant on other sectors with high greenhouse gas emissions.",
+ "url": "https://phys.org/news/2024-09-environmental-impacts-brazil-biofuel-sector.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/2024/assessing-the-environm-1.jpg",
+ "publishedAt": "2024-09-19T14:58:28Z",
+ "content": "Mathematical analysis reveals that within Brazil's agriculture and livestock industry, the biofuels sector is most heavily reliant on other sectors with high greenhouse gas emissions.\r\nBrazil is a wo\u2026 [+2985 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "Robert Rodriguez, The Fresno Bee",
+ "title": "Thousands of turkeys killed in California's Merced County as officials battle avian flu outbreak",
+ "description": "More than 64,000 turkeys at a Merced County poultry operation are being killed after agriculture officials recently discovered they were infected with the highly pathogenic avian influenza.",
+ "url": "https://phys.org/news/2024-09-thousands-turkeys-california-merced-county.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/hires/2022/turkey-farm.jpg",
+ "publishedAt": "2024-09-24T11:40:01Z",
+ "content": "More than 64,000 turkeys at a Merced County poultry operation are being killed after agriculture officials recently discovered they were infected with the highly pathogenic avian influenza.\r\nThe high\u2026 [+1948 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "The Topeka Capital-Journal"
+ },
+ "author": "Jason Alatidd, Topeka Capital-Journal",
+ "title": "Mold, cockroaches and more: Failed restaurant inspections in Topeka last month",
+ "description": "One restaurant had both green and black mold. Another had baby and adult cockroaches. In all, eight Topeka area establishments were out of compliance.",
+ "url": "https://www.cjonline.com/story/business/2024/09/04/kansas-food-safety-inspectors-cited-topeka-establishments-in-august/74893314007/",
+ "urlToImage": "https://s.yimg.com/ny/api/res/1.2/q1vQgrVdIl.ptusSBr3Gyg--/YXBwaWQ9aGlnaGxhbmRlcjt3PTEyMDA7aD04MDA-/https://media.zenfs.com/en/the-topeka-capital-journal/12c351c275b12dbe700704295e93a75b",
+ "publishedAt": "2024-09-04T09:14:46Z",
+ "content": "Kansas food safety and lodging inspectors reported eight local establishments were out of compliance with state law during August inspections.\r\nKansas law delegates to the Kansas Department of Agricu\u2026 [+10625 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Indianacapitalchronicle.com"
+ },
+ "author": "Whitney Downard",
+ "title": "Holcomb travels to Ukraine to meet with Zelenskyy",
+ "description": "Gov. Eric Holcomb\u2019s trip to Europe will now include a visit to Ukraine and a meeting with President Volodymyr Zelenskyy. According to an administration...",
+ "url": "https://indianacapitalchronicle.com/briefs/holcomb-travels-to-ukraine-to-meet-with-zelenskyy/",
+ "urlToImage": "https://media.zenfs.com/en/indiana_capital_chronicle_articles_227/756f436eb97d08838d6a99fa539d6e25",
+ "publishedAt": "2024-09-05T09:00:54Z",
+ "content": "Gov. Eric Holcomb, right, and Indiana Adjutant Major General Dale Lyles of the Indiana National Guard during a virtual press conference on Aug. 30, 2024. (Screenshot of press conference)\r\nGov. Eric H\u2026 [+2139 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Windows Central"
+ },
+ "author": "kevinokemwa@outlook.com (Kevin Okemwa)",
+ "title": "OpenAI casts its AI net wider across low-income countries with $1 million in API credits through its new OpenAI Academy initiative",
+ "description": "OpenAI just unveiled a new program, OpenAI Academy, to help \"developers and organizations leverage AI to solve hard problems and catalyze economic growth in their communities.\"",
+ "url": "https://www.windowscentral.com/software-apps/openai-casts-its-ai-net-wider-across-low-income-countries-with-dollar1-million-in-api-credits-through-its-new-openai-academy-initiative",
+ "urlToImage": "https://cdn.mos.cms.futurecdn.net/z56oL5aNvpksT8Hx6xkHu6-1200-80.jpg",
+ "publishedAt": "2024-09-23T15:14:30Z",
+ "content": "What you need to know\r\n
- OpenAI recently unveiled OpenAI Academy, which will use AI to help developers and organizations solve problems and enhance growth in low-income countries.
- Throu\u2026 [+3646 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "Ansa Heyl",
+ "title": "Transforming agriculture from carbon source to sink: Study shows potential of carbon sequestration options",
+ "description": "The food system is one of the most significant sources of greenhouse gas emissions on the planet, making the reduction of emissions in this sector a priority for policymakers around the world. IIASA researchers explored the potential of carbon sequestration o\u2026",
+ "url": "https://phys.org/news/2024-09-agriculture-carbon-source-potential-sequestration.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/hires/2024/transforming-agricultu-2.jpg",
+ "publishedAt": "2024-09-23T15:59:14Z",
+ "content": "The food system is one of the most significant sources of greenhouse gas emissions on the planet, making the reduction of emissions in this sector a priority for policymakers around the world. IIASA \u2026 [+4443 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Forbes"
+ },
+ "author": "Jeff Opperman, Contributor, \n Jeff Opperman, Contributor\n https://www.forbes.com/sites/jeffopperman/",
+ "title": "Muddy Waters And The Origins Of Agriculture",
+ "description": "The first seeds for agriculture were quite literally planted 1000s of years ago in the soil left behind by a muddy river, a form of farming, flood recession agriculture, still practiced today.",
+ "url": "https://www.forbes.com/sites/jeffopperman/2024/09/24/muddy-waters-and-the-origins-of-agriculture/",
+ "urlToImage": "https://imageio.forbes.com/specials-images/imageserve/66f1d10d2ef971f164e0952b/0x0.jpg?format=jpg&height=900&width=1600&fit=bounds",
+ "publishedAt": "2024-09-24T15:22:58Z",
+ "content": "The Senegal River in Senegal during a flood; much of the floodplain that is inundated in this image ... [+] will be planted with crops as the flood recedes.\r\nGoogle Earth\r\nWhat is a good river? And w\u2026 [+6679 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "Manaaki Whenua - Landcare Research",
+ "title": "Heat, animal illness and erosion risks to affect NZ agriculture with changing climate",
+ "description": "Scientists at Manaaki Whenua\u2014Landcare Research have worked closely with researchers from NIWA, AgResearch and Plant & Food Research to model the likely risks of a warming climate across different agricultural sectors in New Zealand. The study is published in \u2026",
+ "url": "https://phys.org/news/2024-09-animal-illness-erosion-affect-nz.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/hires/2024/dry-crops.jpg",
+ "publishedAt": "2024-09-25T18:55:03Z",
+ "content": "Scientists at Manaaki WhenuaLandcare Research have worked closely with researchers from NIWA, AgResearch and Plant & Food Research to model the likely risks of a warming climate across different \u2026 [+3391 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Quartz India"
+ },
+ "author": "Francisco Velasquez",
+ "title": "Bird flu hits California's dairy farms",
+ "description": "Cows at three California diary farms have been placed under quarantine after testing positive for avian influenza, commonly known as bird flu, according to the state\u2019s department of food and agriculture (CDFA). Read more...",
+ "url": "https://qz.com/bird-flu-outbreak-california-diary-farms-1851638317",
+ "urlToImage": "https://i.kinja-img.com/image/upload/c_fill,h_675,pg_1,q_80,w_1200/0f577bfd03512c1b80046949c983d328.jpg",
+ "publishedAt": "2024-09-03T14:25:00Z",
+ "content": "Cows at three California diary farms have been placed under quarantine after testing positive for avian influenza, commonly known as bird flu, according to the states department of food and agricultu\u2026 [+2003 chars]"
+ },
+ {
+ "source": {
+ "id": "abc-news",
+ "name": "ABC News"
+ },
+ "author": "Youri Benadjaoud, Meredith Deliso",
+ "title": "Missouri reports 1st human case of bird flu in the state",
+ "description": "An adult with underlying medical conditions was hospitalized on Aug. 22 and has since recovered, the Missouri health department said.",
+ "url": "https://abcnews.go.com/Health/missouri-reports-first-human-case-bird-flu-in-state/story?id=113474247",
+ "urlToImage": "https://i.abcnewsfe.com/a/87a84263-533e-4444-8471-7106ea6f4c58/bird-gty-er-240906_1725663565504_hpMain_16x9.jpg?w=1600",
+ "publishedAt": "2024-09-07T00:29:09Z",
+ "content": "Missouri reported its first confirmed human case of bird flu in a person who reported no exposure to animals, the state's health department said Friday.\r\nThe case brings the national total to 14 so f\u2026 [+1902 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Science Daily"
+ },
+ "author": null,
+ "title": "Fungus-controlled robots tap into the unique power of nature",
+ "description": "In creating a pair of new robots, researchers cultivated an unlikely component, one found on the forest floor: fungal mycelia. By harnessing mycelia's innate electrical signals, the researchers discovered a new way of controlling 'biohybrid' robots that can p\u2026",
+ "url": "https://www.sciencedaily.com/releases/2024/09/240904192325.htm",
+ "urlToImage": "https://www.sciencedaily.com/images/scidaily-icon.png",
+ "publishedAt": "2024-09-04T23:23:25Z",
+ "content": "Building a robot takes time, technical skill, the right materials -- and sometimes, a little fungus.In creating a pair of new robots, Cornell University researchers cultivated an unlikely component, \u2026 [+2374 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "NPR"
+ },
+ "author": "The NPR Network",
+ "title": "Hungry for new podcasts? Here are 8 episodes about how climate change affects our food",
+ "description": "Add these episodes to your listening rotation during the NPR Network's Climate Solutions Week, where we're dedicated to stories and conversations about the search for climate solutions.",
+ "url": "https://www.npr.org/2024/09/09/g-s1-20267/best-podcasts-food-climate",
+ "urlToImage": "https://npr.brightspotcdn.com/dims3/default/strip/false/crop/3000x1688+0+151/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2Fb7%2F7c%2Faebb929b44cf9d6f77ee6b9a93d8%2Fclimate-week-lead-v1.jpg",
+ "publishedAt": "2024-09-09T18:00:00Z",
+ "content": "Climate change is affecting our food, and our food is affecting the climate.\u00a0NPR is dedicating a week to stories and conversations about the search for solutions.\r\nLooking for solutions to our food n\u2026 [+3893 chars]"
+ },
+ {
+ "source": {
+ "id": "business-insider",
+ "name": "Business Insider"
+ },
+ "author": "Erin Liam",
+ "title": "I took a 50% pay cut to leave my sales job and work on a potato farm. I have no regrets.",
+ "description": "Tyler Heppell says he has learned more about business while working on his family farm than he did in his sales job.",
+ "url": "https://www.businessinsider.com/millennial-pay-cut-career-switch-leave-sales-job-potato-farming-2024-9",
+ "urlToImage": "https://i.insider.com/66d133081d8d2deb96b78fb2?width=1200&format=jpeg",
+ "publishedAt": "2024-09-03T00:17:02Z",
+ "content": "Tyler Heppell left his sales job to work on his family farm.Tyler Heppell\r\n
- Five years after working in sales, Tyler Heppell felt he had lost his purpose and quit.
- He intended to work \u2026 [+4413 chars]"
+ },
+ {
+ "source": {
+ "id": "business-insider",
+ "name": "Business Insider"
+ },
+ "author": "Natalie Musumeci",
+ "title": "Boar's Head 'negligence' led to the listeria-related death of a Holocaust survivor, his family says in lawsuit",
+ "description": "The family of G\u00fcnter Morgenstein has filed the first wrongful death lawsuit against Boar's Head in connection to the ongoing listeria outbreak.",
+ "url": "https://www.businessinsider.com/boars-head-listeria-outbreak-deli-meat-death-holocaust-survivor-2024-9",
+ "urlToImage": "https://i.insider.com/66d741d21d8d2deb96b83b4d?width=1200&format=jpeg",
+ "publishedAt": "2024-09-03T17:58:39Z",
+ "content": "G\u00fcnter Morgenstein's family has filed a wrongful death lawsuit against Boar's Head.Handout; Justin Sullivan/Getty Images\r\n
- The family of a Holocaust survivor has filed a wrongful-death lawsuit\u2026 [+4249 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "Ifedotun Aina, Opeyemi Ayinde",
+ "title": "Nigerian farmers lack insurance: Payouts triggered by weather data offer a solution",
+ "description": "Agriculture is hugely important to Nigeria. It makes up about a quarter of the country's economy, and almost half of the population are smallholder farmers. Most farm on less than 10 hectares of land.",
+ "url": "https://phys.org/news/2024-09-nigerian-farmers-lack-payouts-triggered.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/hires/2024/nigerian-farmer.jpg",
+ "publishedAt": "2024-09-11T16:42:04Z",
+ "content": "Agriculture is hugely important to Nigeria. It makes up about a quarter of the country's economy, and almost half of the population are smallholder farmers. Most farm on less than 10 hectares of land\u2026 [+7116 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "Science X",
+ "title": "Satellite remote sensing shows potential in agricultural monitoring",
+ "description": "Paddy rice is an important agricultural product, and accurate mapping of paddy rice fields is essential for enhancing food security, promoting sustainable agriculture, increasing crop yields, and facilitating technological advancements.",
+ "url": "https://phys.org/news/2024-09-satellite-remote-potential-agricultural.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/hires/2024/satellite-remote-sensi-1.jpg",
+ "publishedAt": "2024-09-04T19:13:03Z",
+ "content": "Paddy rice is an important agricultural product, and accurate mapping of paddy rice fields is essential for enhancing food security, promoting sustainable agriculture, increasing crop yields, and fac\u2026 [+2262 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Forbes"
+ },
+ "author": "Don Tse, Contributor, \n Don Tse, Contributor\n https://www.forbes.com/sites/dontse/",
+ "title": "How Small Malthouses Are Changing Beer, Whiskey And Agriculture",
+ "description": "When the Craft Maltsters Guild formed in 2013, it did so with a mere eight member malthouses. Today, the Guild boasts 110 member malthouses.",
+ "url": "https://www.forbes.com/sites/dontse/2024/09/01/how-small-malthouses-are-changing-beer-whiskey-and-agriculture/",
+ "urlToImage": "https://imageio.forbes.com/specials-images/imageserve/66b26cba54a6db8dd6efa77d/0x0.jpg?format=jpg&height=900&width=1600&fit=bounds",
+ "publishedAt": "2024-09-01T11:45:00Z",
+ "content": "Malt made at small malthouses is often handmade, including manually raking the malt to prevent ... [+] clumping as the barley germinates.\r\nRiverbend Malt House\r\nWhen the Craft Maltsters Guild formed \u2026 [+3227 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Forbes"
+ },
+ "author": "Judith Magyar, SAP, \n Judith Magyar, SAP\n https://www.forbes.com/sites/sap/people/magyarjudith/",
+ "title": "Could A Consortium For Regenerative Agriculture End World Hunger?",
+ "description": "The negative environmental and social consequences of current food systems are impossible to ignore. Change is not impossible, but it will take a new approach.",
+ "url": "https://www.forbes.com/sites/sap/2024/09/25/could-a-consortium-for-regenerative-agriculture-end-world-hunger/",
+ "urlToImage": "https://imageio.forbes.com/specials-images/imageserve/66f43d4899b1e3c47cc62ad9/0x0.jpg?format=jpg&crop=2629,1479,x0,y135,safe&height=900&width=1600&fit=bounds",
+ "publishedAt": "2024-09-25T16:43:26Z",
+ "content": "The second UN Sustainable Development Goal (SDG) is ending hunger. Industrial agriculture has been widely promoted as a means to achieving that goal, but despite increases in global productivity and \u2026 [+6082 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "Justin Zadorsky",
+ "title": "Researchers uncover cause of a rapidly changing remote water system",
+ "description": "Nestled in the Uinta Mountains of northern Utah, a series of pristine lakes are facing a new threat\u2014humans. Geography professor and chair Katrina Moser led a team of researchers in the region this summer to better understand how human activity, like agricultu\u2026",
+ "url": "https://phys.org/news/2024-09-uncover-rapidly-remote.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/hires/2024/western-research-uncov.jpg",
+ "publishedAt": "2024-09-20T17:04:16Z",
+ "content": "Nestled in the Uinta Mountains of northern Utah, a series of pristine lakes are facing a new threathumans. Geography professor and chair Katrina Moser led a team of researchers in the region this sum\u2026 [+5234 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "Science X",
+ "title": "Beef industry can reduce emissions by up to 30%, says new research",
+ "description": "Greenhouse gases resulting from human activity have been the largest driver of climate change since the mid-20th century\u2014especially from agriculture. The U.S. beef industry alone is responsible for 3.3% of the nation's total emissions, and even with greater r\u2026",
+ "url": "https://phys.org/news/2024-09-beef-industry-emissions.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/hires/2024/beef-industry-can-redu.jpg",
+ "publishedAt": "2024-09-03T20:34:03Z",
+ "content": "Greenhouse gases resulting from human activity have been the largest driver of climate change since the mid-20th centuryespecially from agriculture. The U.S. beef industry alone is responsible for 3.\u2026 [+4225 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "Marianne Stein",
+ "title": "Climate-smart grazing: Study shows how weather mitigates nitrogen runoff",
+ "description": "Livestock production is an important component of U.S. agriculture, with global demand for meat and dairy expected to double in the coming decades. This increase will lead to intensified grazing on U.S. grasslands, potentially exacerbating water quality degra\u2026",
+ "url": "https://phys.org/news/2024-09-climate-smart-grazing-weather-mitigates.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/hires/2024/climate-smart-grazing.jpg",
+ "publishedAt": "2024-09-25T20:50:01Z",
+ "content": "by Marianne Stein, University of Illinois College of Agricultural, Consumer and Environmental Sciences (ACES)Livestock production is an important component of U.S. agriculture, with global demand for\u2026 [+4419 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "Agricultural Research Service",
+ "title": "Pitting good versus bad fungi on sweet corn: A delicate dance",
+ "description": "The same defenses that help some varieties of sweet corn resist fungal diseases can also stymie the potency of a beneficial fungus used to kill hungry caterpillar pests, studies by Agricultural Research Service (ARS) scientists suggest. The researchers detail\u2026",
+ "url": "https://phys.org/news/2024-09-pitting-good-bad-fungi-sweet.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/2024/pitting-good-versus-ba.jpg",
+ "publishedAt": "2024-09-30T16:55:15Z",
+ "content": "The same defenses that help some varieties of sweet corn resist fungal diseases can also stymie the potency of a beneficial fungus used to kill hungry caterpillar pests, studies by Agricultural Resea\u2026 [+3686 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Digital Trends"
+ },
+ "author": "Georgina Torbet",
+ "title": "See the first images from Europe\u2019s Sentinel-2C satellite looking down on Earth",
+ "description": "Earlier this month, the European Space Agency (ESA) launched its newest Earth-observation satellite, known as Copernicus Sentinel-2C.",
+ "url": "https://www.digitaltrends.com/space/sentinel-2c-first-images/",
+ "urlToImage": "https://www.digitaltrends.com/wp-content/uploads/2024/09/Seville_from_Copernicus_Sentinel-2C.jpg?resize=1200%2C630&p=1",
+ "publishedAt": "2024-09-18T01:00:03Z",
+ "content": "Earlier this month, the European Space Agency (ESA) launched its newest Earth-observation satellite, known as Copernicus Sentinel-2C. Joining its siblings Sentinel-2A and B, it will take high-resolut\u2026 [+2507 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "BBC News"
+ },
+ "author": null,
+ "title": "'Catastrophic' super typhoon Yagi barrels towards China",
+ "description": "Yagi has doubled in strength after wrecking havoc in the northern Philippines early this week.",
+ "url": "https://www.bbc.com/news/articles/c4gz3rk71n7o",
+ "urlToImage": "https://ichef.bbci.co.uk/news/1024/branded_news/5c9b/live/18d301a0-6c06-11ef-9365-bd9226369161.jpg",
+ "publishedAt": "2024-09-06T04:34:26Z",
+ "content": "One of this year's most powerful storms is barrelling toward southern China and is expected to make landfall in the popular tourist island of Hainan later today.\r\nTrains, boats and flights have been \u2026 [+2301 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "CNET"
+ },
+ "author": "Jessica Rendall",
+ "title": "Human Bird Flu Case Reported in US Without Known Animal Contact",
+ "description": "Other US cases of H5 were detected in people who've worked directly with sick animals. Health officials say the risk to the general public remains low.",
+ "url": "https://www.cnet.com/health/medical/human-bird-flu-case-reported-in-us-without-known-animal-contact/",
+ "urlToImage": "https://www.cnet.com/a/img/resize/e6798ff1fdaa4f9add1f598a22413a4c26b2d40b/hub/2024/07/24/65a5f3ad-f2c1-4473-8b7d-0423df1d2a7f/gettyimages-1515026137.jpg?auto=webp&fit=crop&height=675&width=1200",
+ "publishedAt": "2024-09-07T03:32:00Z",
+ "content": "A person in Missouri was sick with bird flu, or avian influenza, but as of now doesn't have a known exposure to animals in the ongoing bird flu outbreak, according to a Friday news release from the U\u2026 [+6840 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Thekitchn.com"
+ },
+ "author": "Ashia Aubourg",
+ "title": "This Cleaning Hack Prevents Fruit Flies from Taking Over Your Kitchen",
+ "description": "Bonus: It's free.\nREAD MORE...",
+ "url": "https://www.thekitchn.com/water-fruit-fly-trick-23680478",
+ "urlToImage": "https://cdn.apartmenttherapy.info/image/upload/f_auto,q_auto:eco,c_fill,g_auto,w_1500,ar_3:2/k%2FPhoto%2FLifestyle%2F2021-09-The-Most-Brilliant-Use-for-a-Wine-Cork-Ever%2FLast-Thing-Wine-Cork-2",
+ "publishedAt": "2024-09-13T20:15:00Z",
+ "content": "We independently select these products\u2014if you buy from one of our links, we may earn a commission. All prices were accurate at the time of publishing.\r\nFor some reason, fruit flies cant get enough of\u2026 [+1594 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "NPR"
+ },
+ "author": "Manola Secaira",
+ "title": "California farmers turn to agave amid drought conditions and climate change",
+ "description": "Farmers in California are trying to plant crops that don't require a lot of water. Some are turning to growing agave as a response to a warming state.",
+ "url": "https://www.npr.org/2024/09/06/nx-s1-5002056/california-farmers-agave-drought-conditions-climate-change",
+ "urlToImage": "https://npr.brightspotcdn.com/dims3/default/strip/false/crop/3000x1688+0+135/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2Fbc%2F74%2F88897500479f90e4e39940fdedb3%2Frodriquez-orlando.jpg",
+ "publishedAt": "2024-09-09T10:00:00Z",
+ "content": "Climate change is affecting our food, and our food is affecting the climate.\u00a0NPR is dedicating a week to stories and conversations about the search for solutions.\r\nMost of the United States' fruits a\u2026 [+12610 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Science Daily"
+ },
+ "author": null,
+ "title": "New research on plant stem cells shines light on how plants grow stronger",
+ "description": "A professor of plant molecular biology wants people to know that plants have stem cells too. Just like in the medical world, plant stem cells could support human growth and development when used to improve the food supply. The researcher's lab discovered a tr\u2026",
+ "url": "https://www.sciencedaily.com/releases/2024/09/240912135746.htm",
+ "urlToImage": "https://www.sciencedaily.com/images/scidaily-icon.png",
+ "publishedAt": "2024-09-12T17:57:46Z",
+ "content": "Stem cell research is a hot topic. With applications for a host of human medical advancements, researchers have been working with animal and human stem cells for years.But animals aren't the only one\u2026 [+3291 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "NPR"
+ },
+ "author": "Benjamin Thorp",
+ "title": "Could bird flu spread at state fairs? Here\u2019s why health experts advise caution",
+ "description": "Corn dogs, deep-fried Twinkies, butter sculptures and influenza virus? Here\u2019s why state fairs could be potential breeding grounds for viral mutation.",
+ "url": "https://www.npr.org/sections/shots-health-news/2024/09/04/nx-s1-5096213/state-fair-bird-flu-cows-risk-spread",
+ "urlToImage": "https://npr.brightspotcdn.com/dims3/default/strip/false/crop/1760x990+0+92/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2F65%2F91%2Fbf72ff8745a29f84200168aa6fbc%2F1.jpg",
+ "publishedAt": "2024-09-04T11:00:00Z",
+ "content": "Between July and October states across the country hold their annual state fairs.\r\nThe events are known for things like Ferris wheels and corn dogs, sculptures made entirely from butter and the bigge\u2026 [+6439 chars]"
+ },
+ {
+ "source": {
+ "id": "business-insider",
+ "name": "Business Insider"
+ },
+ "author": "Ana Altchek,Grace Eliza Goodwin",
+ "title": "Trump is threatening tariffs on yet another business \u2014 and economists say it makes no sense",
+ "description": "Donald Trump threatened to impose a 200% tariff on John Deere if it follows through on plans to take some its manufacturing to Mexico.",
+ "url": "https://www.businessinsider.com/trump-tariff-threat-john-deere-economists-baffled-2024-9",
+ "urlToImage": "https://i.insider.com/66f35283cfb7f307e574afad?width=1200&format=jpeg",
+ "publishedAt": "2024-09-25T08:00:02Z",
+ "content": "Trump threatened a 200% tariff on John Deere if it moves manufacturing to Mexico.Win McNamee/Getty\r\n
- Trump threatened a 200% tariff on John Deere if it moves some of its manufacturing to Mexic\u2026 [+6678 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": null,
+ "title": "Unveiling soil moisture patterns with advanced navigation tech",
+ "description": "A pioneering method for soil moisture retrieval using satellite navigation systems has been introduced, significantly boosting the accuracy and efficiency of global data collection. The research, published in the journal Satellite Navigation, tackles the chal\u2026",
+ "url": "https://phys.org/news/2024-09-unveiling-soil-moisture-patterns-advanced.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/2024/satellite-sleuths-unve.jpg",
+ "publishedAt": "2024-09-16T15:13:03Z",
+ "content": "A pioneering method for soil moisture retrieval using satellite navigation systems has been introduced, significantly boosting the accuracy and efficiency of global data collection. The research, pub\u2026 [+4422 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "European Commission, Joint Research Centre (JRC)",
+ "title": "Report: Cutting methane emissions key to fighting climate change and harmful ozone",
+ "description": "Many human activities lead to methane being released into the atmosphere. Agriculture, landfills, wastewater, and fossil fuel production and distribution are the biggest contributors. These make up roughly 60% of global methane emissions, and natural sources \u2026",
+ "url": "https://phys.org/news/2024-09-methane-emissions-key-climate-ozone.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/2024/cutting-methane-emissi-1.jpg",
+ "publishedAt": "2024-09-23T14:03:47Z",
+ "content": "Many human activities lead to methane being released into the atmosphere. Agriculture, landfills, wastewater, and fossil fuel production and distribution are the biggest contributors. These make up r\u2026 [+4160 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "Science X",
+ "title": "Unlocking plant defense: Bacterial hijacking exposed",
+ "description": "Bacterial wilt caused by Ralstonia solanacearum poses a severe threat to agriculture worldwide, affecting numerous crops. The pathogen's arsenal of type III effectors (T3Es) enables it to manipulate host defense mechanisms, aiding infection. One major challen\u2026",
+ "url": "https://phys.org/news/2024-09-defense-bacterial-hijacking-exposed.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/hires/2024/unlocking-plant-defens.jpg",
+ "publishedAt": "2024-09-10T18:46:03Z",
+ "content": "Bacterial wilt caused by Ralstonia solanacearum poses a severe threat to agriculture worldwide, affecting numerous crops. The pathogen's arsenal of type III effectors (T3Es) enables it to manipulate \u2026 [+3446 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Yahoo Entertainment"
+ },
+ "author": "SETH BORENSTEIN",
+ "title": "Pollution of the potent warming gas methane soars and people are mostly to blame",
+ "description": "The amount and proportion of the powerful heat-trapping gas methane that humans spew into the atmosphere is rising, helping to turbocharge climate change, a ...",
+ "url": "https://www.yahoo.com/news/pollution-potent-warming-gas-methane-075627841.html",
+ "urlToImage": "https://s.yimg.com/ny/api/res/1.2/05tRs817L17DeAGGblV9lQ--/YXBwaWQ9aGlnaGxhbmRlcjt3PTEyMDA7aD04MDA-/https://media.zenfs.com/en/ap.org/d91525b7a913b3662f0e41ab03e8209c",
+ "publishedAt": "2024-09-10T07:56:27Z",
+ "content": "The amount and proportion of the powerful heat-trapping gas methane that humans spew into the atmosphere is rising, helping to turbocharge climate change, a new study finds.\r\nTuesdays study finds tha\u2026 [+4333 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Yahoo Entertainment"
+ },
+ "author": "Tyler Slauson",
+ "title": "River otter pulls young child into WA water, attacks family at marina",
+ "description": "The otter continued to attack when the child's mother came to the rescue.",
+ "url": "https://www.yahoo.com/news/river-otter-pulls-young-child-235626558.html",
+ "urlToImage": "https://s.yimg.com/ny/api/res/1.2/yLNEbzianm8Kkz8kT82Q1w--/YXBwaWQ9aGlnaGxhbmRlcjt3PTEyMDA7aD04NDQ-/https://media.zenfs.com/en/kcpq_fox_local_articles_135/ff8d29ecbdda009d8dd5eceee7c1541c",
+ "publishedAt": "2024-09-12T23:56:26Z",
+ "content": "BREMERTON, Wash. - A young child was pulled into the water by a river otter Thursday morning while walking on the dock at Bremerton Marina in Kitsap County.\r\nThe Washington Department of Fish and Wil\u2026 [+2099 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "BBC News"
+ },
+ "author": "BBC",
+ "title": "More than 80 dead in Vietnam super typhoon",
+ "description": "The most powerful storm to hit the country in 30 years has also left thousands stranded.",
+ "url": "https://www.bbc.com/news/articles/cql3qvg3vk9o?xtor=AL-72-%5Bpartner%5D-%5Byahoo.north.america%5D-%5Bheadline%5D-%5Bnews%5D-%5Bbizdev%5D-%5Bisapi%5D",
+ "urlToImage": "https://s.yimg.com/ny/api/res/1.2/g2SqB9U0j7qtMGNktGLG2w--/YXBwaWQ9aGlnaGxhbmRlcjt3PTEyMDA7aD02NzU-/https://media.zenfs.com/en/bbc_us_articles_995/d9165bd00f7eaa58f94410dae30814b6",
+ "publishedAt": "2024-09-10T10:14:59Z",
+ "content": "At least 82 people have now died in Vietnam as a super typhoon which hit on Saturday continues to bring heavy rainfall, landslides and flooding.\r\nThousands of people were seen stranded on rooftops in\u2026 [+1959 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Just-food.com"
+ },
+ "author": "Dean Best",
+ "title": "Number of deaths linked to Boar\u2019s Head products rises",
+ "description": "The US Centers for Disease Control and Prevention reported more than 50 cases of people being hospitalised.",
+ "url": "https://www.just-food.com/news/number-of-deaths-linked-to-boars-head-products-rise/",
+ "urlToImage": "https://s.yimg.com/ny/api/res/1.2/9RuIpGNYY8sQd4jCoRu.jg--/YXBwaWQ9aGlnaGxhbmRlcjt3PTEyMDA7aD02NzU-/https://media.zenfs.com/en/just_food_692/6e9906730e68934f2e8bed7c0132882c",
+ "publishedAt": "2024-09-02T13:37:47Z",
+ "content": "The deaths of nine people have been linked to a recall of Boars Head deli meats, according to government figures.\r\nFigures released on Wednesday by the US Centers for Disease Control and Prevention (\u2026 [+2473 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Forbes"
+ },
+ "author": "Christine Ro, Contributor, \n Christine Ro, Contributor\n https://www.forbes.com/sites/christinero/",
+ "title": "Big Problems With Big Livestock Farms",
+ "description": "New analysis of the most recent Census of Agriculture shows that animal protein purchased in the U.S. is overwhelmingly likely to come from the largest of large farms",
+ "url": "https://www.forbes.com/sites/christinero/2024/09/16/big-problems-with-big-livestock-farms/",
+ "urlToImage": "https://imageio.forbes.com/specials-images/imageserve/66e45cfca1f163ceaa358fa7/0x0.jpg?format=jpg&crop=2053,1155,x30,y0,safe&height=900&width=1600&fit=bounds",
+ "publishedAt": "2024-09-16T06:00:00Z",
+ "content": "Cows at Pinhook Farm\r\nSeth Watkins\r\nOver the years Seth Watkins has won praise for the way he farms. Pinhook Farm, in southern Iowa, grows diverse crops without commercial fertilizers and with limite\u2026 [+11813 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Forbes"
+ },
+ "author": "Christine Ro, Contributor, \n Christine Ro, Contributor\n https://www.forbes.com/sites/christinero/",
+ "title": "Why African Groups Want Reparations From The Gates Foundation",
+ "description": "The open letter charges funders with promoting a type of corporate, industrial agriculture that does not respect African ecosystems or agricultural traditions,",
+ "url": "https://www.forbes.com/sites/christinero/2024/09/02/why-african-groups-want-reparations-from-the-gates-foundation/",
+ "urlToImage": "https://imageio.forbes.com/specials-images/imageserve/66d2ce132ea24fd2d6e7e24f/0x0.jpg?format=jpg&height=900&width=1600&fit=bounds",
+ "publishedAt": "2024-09-02T06:00:00Z",
+ "content": "A Seed Savers Network seed bank in Gilgil, Kenya. The Kenyan NGO Seed Savers Network works with ... [+] smallholder farmers on seed access, traditional crop varieties, and biodiversity. (Photo by Jam\u2026 [+10867 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Theness.com"
+ },
+ "author": "Steven Novella",
+ "title": "Decarbonizing Aviation and Agriculture",
+ "description": "When we talk about reducing carbon release in order to slow down and hopefully stop anthropogenic global warming much of the focus is on the energy and transportation sectors. There is a good reason for this \u2013 the energy sector is responsible for 25% of green\u2026",
+ "url": "https://theness.com/neurologicablog/decarbonizing-aviation-and-agriculture/",
+ "urlToImage": "https://theness.com/neurologicablog/wp-content/uploads/sites/3/2024/09/total-ghg-2024.png",
+ "publishedAt": "2024-09-24T12:04:22Z",
+ "content": "When we talk about reducing carbon release in order to slow down and hopefully stop anthropogenic global warming much of the focus is on the energy and transportation sectors. There is a good reason \u2026 [+5934 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Quartz India"
+ },
+ "author": "Bruce Gil",
+ "title": "The Boar's Head listeria outbreak has been linked to a 10th death. Lawmakers want answers",
+ "description": "A tenth person has died in connection to a multi-state listeria outbreak linked to a Boar\u2019s Head plant in Virginia. The news follows a nationwide recall of potentially contaminated deli meats from the company.Read more...",
+ "url": "https://qz.com/boars-head-listeria-outbreak-death-1851658345",
+ "urlToImage": "https://i.kinja-img.com/image/upload/c_fill,h_675,pg_1,q_80,w_1200/b8c1c94b03c0dd8f0e5f2b6bb321a8c9.jpg",
+ "publishedAt": "2024-09-26T14:35:00Z",
+ "content": "In This Story\r\nA tenth person has died in connection to a multi-state listeria outbreak linked to a Boars Head plant in Virginia. The news follows a nationwide recall of potentially contaminated deli\u2026 [+2398 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "BBC News"
+ },
+ "author": null,
+ "title": "Italian minister quits after appointing ex-lover as adviser",
+ "description": "The culture minister admits to hiring his ex-lover as an consultant, after starting an affair with her in May.",
+ "url": "https://www.bbc.com/news/articles/cj4xkr5zvpdo",
+ "urlToImage": "https://ichef.bbci.co.uk/news/1024/branded_news/2354/live/ba53d5f0-6c73-11ef-8f7b-5519bba3a793.jpg",
+ "publishedAt": "2024-09-06T17:48:20Z",
+ "content": "Italy's culture minister has resigned after a row over the appointment of his former mistress as a top adviser caused weeks of controversy for the the country's right-wing government.\r\nGennaro Sangiu\u2026 [+3490 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "BBC News"
+ },
+ "author": null,
+ "title": "Kyiv names new foreign minister in cabinet revamp",
+ "description": "Parliament approves several new ministers, but some MPs accuse President Zelensky of centralising power.",
+ "url": "https://www.bbc.com/news/articles/cwywj71ywyeo",
+ "urlToImage": "https://ichef.bbci.co.uk/news/1024/branded_news/84de/live/c55110c0-6b98-11ef-811b-09c4913a8684.jpg",
+ "publishedAt": "2024-09-05T15:58:26Z",
+ "content": "Ukraine's parliament has approved Andrii Sybiha, a 49-year-old former diplomat and ex-adviser to President Volodymyr Zelensky, as the country's new foreign minister. \r\nIt comes as Mr Zelensky carries\u2026 [+3878 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "Geological Society of America",
+ "title": "Channel conveyance and flood risk: Are current models missing the mark?",
+ "description": "River floods are environmental hazards that can have devastating effects on human life, agriculture, and infrastructure. Hydrologic models are used to map flood hazards to better understand risk, dictate insurance costs, and inform land-use planning. However,\u2026",
+ "url": "https://phys.org/news/2024-09-channel-conveyance-current.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/hires/2021/flood-1.jpg",
+ "publishedAt": "2024-09-24T19:08:03Z",
+ "content": "River floods are environmental hazards that can have devastating effects on human life, agriculture, and infrastructure. Hydrologic models are used to map flood hazards to better understand risk, dic\u2026 [+2896 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "Science X",
+ "title": "Farming at the edges of nature reserves is helping exotic species invade New Zealand, finds study",
+ "description": "Native shrublands were once common across the Canterbury Plains, but over time, conversion of land to other uses, including irrigated pasture, has contributed to their gradual decline. Now, a new study by scientists at Manaaki Whenua\u2014Landcare Research has fou\u2026",
+ "url": "https://phys.org/news/2024-09-farming-edges-nature-reserves-exotic.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/2024/farming-at-the-edges-o.jpg",
+ "publishedAt": "2024-09-09T17:33:54Z",
+ "content": "Native shrublands were once common across the Canterbury Plains, but over time, conversion of land to other uses, including irrigated pasture, has contributed to their gradual decline. Now, a new stu\u2026 [+3717 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "NASA"
+ },
+ "author": "Jordan T. Pogorzelski",
+ "title": "Pollinator Initiatives at NASA",
+ "description": "Pollinators play a crucial role in both human agriculture and ecosystems \u2013 they support thousands of plant species and crops which feed humans and livestock. Unfortunately, habitat loss, disease, and pesticides contribute to the decline in pollinator biodiver\u2026",
+ "url": "https://www.nasa.gov/organizations/osi/emd/pollinator-initiatives-at-nasa/",
+ "urlToImage": "https://www.nasa.gov/wp-content/uploads/2024/08/jsc-prairie-roof-03.png",
+ "publishedAt": "2024-09-03T15:19:26Z",
+ "content": "Pollinators play a crucial role in both human agriculture and ecosystems by supporting thousands of plant species and crops which feed humans and livestock. Unfortunately, habitat loss, disease, and \u2026 [+5985 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "New Atlas"
+ },
+ "author": "Ben Coxworth",
+ "title": "Forest-floor mirrors give shaded seedlings a 175% growth-boost",
+ "description": "Many indoor plant enthusiasts already know that mirrors can be used to direct more sunlight onto plants that need it. Scientists have now developed a method of applying that same principle to endangered tree seedlings that are struggling to grow in shady fore\u2026",
+ "url": "https://newatlas.com/science/forest-floor-mirrors-seedling-growth/",
+ "urlToImage": "https://assets.newatlas.com/dims4/default/b28102a/2147483647/strip/true/crop/1110x583+0+79/resize/1200x630!/quality/90/?url=http%3A%2F%2Fnewatlas-brightspot.s3.amazonaws.com%2F9a%2F88%2F9f902b754b4e9375e1e77ce293a2%2Fscreenshot-2024-09-19-at-11.20.18%E2%80%AFAM.jpeg&na.image_optimisation=0",
+ "publishedAt": "2024-09-19T17:50:05Z",
+ "content": "Many indoor plant enthusiasts already know that mirrors can be used to direct more sunlight onto plants that need it. Scientists have now developed a method of applying that same principle to endange\u2026 [+3171 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Scientific American"
+ },
+ "author": "Nathan Donley, Kyla Bennett",
+ "title": "PFAS in Pesticides Could Pose a Greater Multigenerational Threat Than DDT",
+ "description": "A looming and poorly regulated PFAS threat comes from these chemicals\u2019 common use in pesticides on farms nationwide",
+ "url": "https://www.scientificamerican.com/article/pfas-in-pesticides-could-pose-a-greater-multigenerational-threat-than-ddt/",
+ "urlToImage": "https://static.scientificamerican.com/dam/m/77e9d9f6801177b2/original/SA_Farm-Workers-Spray-Pesticides.jpg?w=1200",
+ "publishedAt": "2024-09-11T11:00:00Z",
+ "content": "When the U.S. Environmental Protection Agency ended most uses of the notorious pesticide DDT back in 1972, it wasn\u2019t just because of the poison\u2019s then suspected links to cancer and serious reproducti\u2026 [+6368 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "New Atlas"
+ },
+ "author": "Ben Coxworth",
+ "title": "Clay reduces methane in cow burps by 30%",
+ "description": "In case you haven't heard, the methane in cow burps is a major source of greenhouse gases. There may be a new way of addressing that problem, however, as a recent study shows that feeding cows clay reduces their methane emissions by over 30%.Continue ReadingC\u2026",
+ "url": "https://newatlas.com/environment/cow-burps-methane-clay/",
+ "urlToImage": "https://assets.newatlas.com/dims4/default/e0b3907/2147483647/strip/true/crop/5687x2986+0+538/resize/1200x630!/quality/90/?url=http%3A%2F%2Fnewatlas-brightspot.s3.amazonaws.com%2Fa9%2F6a%2F74e269db45a681bf929577e1cd8c%2Fdepositphotos-463844604-xl.jpg&na.image_optimisation=0",
+ "publishedAt": "2024-09-19T00:24:57Z",
+ "content": "In case you haven't heard, the methane in cow burps is a major source of greenhouse gases. There may be a new way of addressing that problem, however, as a recent study shows that feeding cows clay r\u2026 [+1669 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Biztoc.com"
+ },
+ "author": "asia.nikkei.com",
+ "title": "Japan should lead way in promoting eco-friendly agriculture in Asia",
+ "description": "Japan has begun sharing its know-how on curbing greenhouse gas emissions from rice cultivation with the rest of Asia. This initiative should serve as the first step in a broader Japanese push to promote environment-friendly agriculture across the region.\nMeth\u2026",
+ "url": "https://biztoc.com/x/42c111325297e790",
+ "urlToImage": "https://biztoc.com/cdn/42c111325297e790_s.webp",
+ "publishedAt": "2024-09-18T04:02:45Z",
+ "content": "Japan has begun sharing its know-how on curbing greenhouse gas emissions from rice cultivation with the rest of Asia. This initiative should serve as the first step in a broader Japanese push to prom\u2026 [+139 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Biztoc.com"
+ },
+ "author": "theglobeandmail.com",
+ "title": "Agriculture groups urge White House action ahead of possible ports strike",
+ "description": "Nearly 200 agriculture organizations on Friday morning urged the White House to address key U.S. agricultural supply chain issues in the face of a potential East and Gulf Coast port strike that could begin on Tuesday.\nThe groups said the industry is facing \u201ci\u2026",
+ "url": "https://biztoc.com/x/14fabf244456fab6",
+ "urlToImage": "https://biztoc.com/cdn/14fabf244456fab6_s.webp",
+ "publishedAt": "2024-09-27T13:28:03Z",
+ "content": "Nearly 200 agriculture organizations on Friday morning urged the White House to address key U.S. agricultural supply chain issues in the face of a potential East and Gulf Coast port strike that could\u2026 [+141 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Noemamag.com"
+ },
+ "author": null,
+ "title": "The Powerful Potential of Tiny Conservation Plots",
+ "description": "Making space for environmental conservation in our densest concrete jungles.",
+ "url": "https://www.noemamag.com/the-powerful-potential-of-tiny-conservation-plots",
+ "urlToImage": "https://noemamag.imgix.net/2024/08/MorganLevy_IGP3678-Edit-scaled.jpg?fit=crop&fm=pjpg&h=628&ixlib=php-3.3.1&w=1200&wpsize=noema-social-facebook&s=67dbf73a269b84c6cca4d0579b1d16bd",
+ "publishedAt": "2024-09-02T13:02:38Z",
+ "content": "For a few seconds, its like a scene from a movie: A gentle breeze rustles rows of garlic and carrot plants, tickling my shins. Early summer sun streams through the canopy overhead, leaves throw shade\u2026 [+18607 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "CleanTechnica"
+ },
+ "author": "Carolyn Fortuna",
+ "title": "The Sustainable Agriculture Fair Of The Future",
+ "description": "As the summer wound down, I immersed myself in a local cultural tradition: the local agriculture fair, a harvest tradition in New England that dates back over a century. With it are competitions for the best examples of cows, pigs, sheep, ducks, and horses, w\u2026",
+ "url": "https://cleantechnica.com/2024/09/25/the-sustainable-agriculture-fair-of-the-future/",
+ "urlToImage": "https://cleantechnica.com/wp-content/uploads/2024/09/vegetable-art-at-Woodstock-Fair.jpg",
+ "publishedAt": "2024-09-25T12:43:07Z",
+ "content": "Sign up for daily news updates from CleanTechnica on email. Or follow us on Google News!\r\nAs the summer wound down, I immersed myself in a local cultural tradition: the local agriculture fair, a harv\u2026 [+8504 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "Science X",
+ "title": "The 15 top methane-emitting nations lack policies to rein them in",
+ "description": "While the United States and China have taken important steps to reduce their methane emissions, other significant producers of the potent greenhouse gas rarely have concrete national plans to mitigate it, according to a new University of Maryland analysis.",
+ "url": "https://phys.org/news/2024-09-methane-emitting-nations-lack-policies.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/hires/2024/15-top-methane-emittin.jpg",
+ "publishedAt": "2024-09-04T18:37:22Z",
+ "content": "While the United States and China have taken important steps to reduce their methane emissions, other significant producers of the potent greenhouse gas rarely have concrete national plans to mitigat\u2026 [+4072 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Science Daily"
+ },
+ "author": null,
+ "title": "Shining light on how solar power and farming can coexist",
+ "description": "Scientists have developed a new tool to help identify optimal photovoltaic (PV) materials capable of maximizing crop growth while generating solar power.",
+ "url": "https://www.sciencedaily.com/releases/2024/09/240906141606.htm",
+ "urlToImage": "https://www.sciencedaily.com/images/scidaily-icon.png",
+ "publishedAt": "2024-09-06T18:16:06Z",
+ "content": "Scientists from Swansea University have developed a new tool to help identify optimal photovoltaic (PV) materials capable of maximising crop growth while generating solar power.In a recent study publ\u2026 [+2276 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "Science X",
+ "title": "With the right plants, wetlands can recover, says researcher",
+ "description": "Wetlands, such as bogs and marshes, have largely disappeared in the Netherlands. With humidification and the growth of the right plants, wetlands can be restored. This is evident from research by Renske Vroom, who will receive her doctorate on this subject at\u2026",
+ "url": "https://phys.org/news/2024-09-wetlands-recover.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/hires/2021/peat.jpg",
+ "publishedAt": "2024-09-09T20:22:02Z",
+ "content": "Wetlands, such as bogs and marshes, have largely disappeared in the Netherlands. With humidification and the growth of the right plants, wetlands can be restored. This is evident from research by Ren\u2026 [+2925 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "Phys.Org"
+ },
+ "author": "Susanne Rust, Los Angeles Times",
+ "title": "Concern grows as bird flu outbreaks continue to rise among California dairy herds",
+ "description": "Reports of H5N1 bird flu outbreaks at California dairy herds are continuing to rise as the nation's largest milk producer scrambles to contain the spread.",
+ "url": "https://phys.org/news/2024-09-bird-flu-outbreaks-california-dairy.html",
+ "urlToImage": "https://scx2.b-cdn.net/gfx/news/hires/2023/dairy-cows.jpg",
+ "publishedAt": "2024-09-25T13:40:02Z",
+ "content": "Reports of H5N1 bird flu outbreaks at California dairy herds are continuing to rise as the nation's largest milk producer scrambles to contain the spread.\r\nOn Monday, officials reported that the numb\u2026 [+3425 chars]"
+ },
+ {
+ "source": {
+ "id": null,
+ "name": "NPR"
+ },
+ "author": "Scott Neuman",
+ "title": "Is getting food delivered worse for the climate? Sometimes it\u2019s better",
+ "description": "From meal kits to grocery service to restaurant delivery, we look at the carbon footprint of convenient food and the choices people can make to try to reduce it. Sometimes there are trade-offs.",
+ "url": "https://www.npr.org/2024/09/10/nx-s1-5020321/food-delivery-meal-kits-carbon-footprint",
+ "urlToImage": "https://npr.brightspotcdn.com/dims3/default/strip/false/crop/3000x1688+0+156/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2Fe6%2F00%2F8fb1516747229596730ad31f8b9c%2Fgettyimages-1231964357.jpg",
+ "publishedAt": "2024-09-11T10:00:00Z",
+ "content": "Climate change is affecting our food, and our food is affecting the climate.\u00a0NPR is dedicating a week to stories and conversations about the search for solutions.\r\nTheres a whiteboard on the refriger\u2026 [+9038 chars]"
+ },
+ {
+ "source": {
+ "id": "business-insider",
+ "name": "Business Insider"
+ },
+ "author": "Mykenna Maniece",
+ "title": "The 10 unhappiest states in the US, ranked",
+ "description": "Louisiana is the unhappiest state in the country, according to a report by WalletHub. See which other states received the lowest happiness rankings.",
+ "url": "https://www.businessinsider.com/unhappiest-states-to-live-in-ranked-2024-9",
+ "urlToImage": "https://i.insider.com/66e3099ed17aa3c7b2b1f7b6?width=1200&format=jpeg",
+ "publishedAt": "2024-09-19T15:55:58Z",
+ "content": "Alaska's lowest ranking was for workplace environment.Ramunas Bruzas/Shutterstock\r\n
- WalletHub released its ranking of the happiest states in the US.
- The study compared the 50 states us\u2026 [+10807 chars]"
+ },
+ {
+ "source": {
+ "id": "business-insider",
+ "name": "Business Insider"
+ },
+ "author": "Shubhangi Goel,Charissa Cheong",
+ "title": "Some techies are leaving cushy Silicon Valley jobs to launch startups at home in India",
+ "description": "Many leave cushy Big Tech salaries because they no longer want to watch the booming entrepreneurship scene from the sidelines.",
+ "url": "https://www.businessinsider.com/indians-leaving-big-tech-to-launch-startups-back-home-2024-9",
+ "urlToImage": "https://i.insider.com/66e3e261cfb7f307e571460a?width=1200&format=jpeg",
+ "publishedAt": "2024-10-01T00:00:02Z",
+ "content": "Expat Indians are leaving Big Tech and moving back home to launch companies of their own.Chelsea Jia Feng, BI\r\n
- Some expat Indians are moving back home to launch companies of their own.
- Valeria Kogan is the CEO of Fermata, a software-development company specializing in agriculture.
- Her team develops AI tools to reduce crop\xe2\x80\xa6 [+6082 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 3
+
+source:
+id: business-insider
+name: Business Insider
+
+author: b'Kwan Wei Kevin Tan'
+title: b"Mark Cuban says Trump's call for 200% tariffs on John Deere tractors is 'insane' and a 'good way to destroy a legendary American company'"
+description: b'The former president said he will impose a 200% tariff on agriculture equipment company John Deere if they move their manufacturing to Mexico.'
+url: b'https://www.businessinsider.com/mark-cuban-trump-call-200-percent-tariffs-john-deere-insane-2024-9'
+urlToImage: b'https://i.insider.com/66f2175ad17aa3c7b2b54cef?width=1200&format=jpeg'
+publishedAt: b'2024-09-24T03:52:59Z'
+content: b'"Good way to destroy a legendary American company and increase costs to American buyers," Mark Cuban said of former President Donald Trump\'s call for 200% tariffs on agriculture equipment company Joh\xe2\x80\xa6 [+3411 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 4
+
+source:
+id: the-next-web
+name: The Next Web
+
+author: b'Si\xc3\xb4n Geschwindt'
+title: b'Big wave surfer emerges from the barrel with $120M fund for regenerative agriculture'
+description: b'What do the Rothschilds, big wave surfing, and cows have in common? A Portuguese man by the name of Francisco Roque de Pinho, of course. Francisco used to be a banker at Rothschild, the most famous of European banking dynasties. For the past eight years he\xe2\x80\x99s \xe2\x80\xa6'
+url: b'https://thenextweb.com/news/big-wave-surfer-emerges-from-the-barrel-with-120m-fund-for-regenerative-agriculture'
+urlToImage: b'https://img-cdn.tnwcdn.com/image/tnw-blurple?filter_last=1&fit=1280%2C640&url=https%3A%2F%2Fcdn0.tnwcdn.com%2Fwp-content%2Fblogs.dir%2F1%2Ffiles%2F2024%2F09%2Fbig-wave-surfer-launches-fund.jpg&signature=325a537f2bfb6e23d4b541d7076a4d33'
+publishedAt: b'2024-09-27T14:54:09Z'
+content: b'What do the Rothschilds, big wave surfing, and cows have in common? A Portuguese man by the name of Francisco Roque de Pinho, of course.\r\nFrancisco used to be a banker at Rothschild, the most famous \xe2\x80\xa6 [+2614 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 5
+
+source:
+id: None
+name: NPR
+
+author: b'Danny McArthur'
+title: b'These small Black-owned farms are growing crops with the climate in mind'
+description: b'Across the Gulf South, small Black-owned farms are finding ways to use climate-friendly practices to grow crops while also addressing long-standing injustices.'
+url: b'https://www.npr.org/2024/09/12/nx-s1-5002077/small-black-owned-farms-climate-change-smart-agriculture'
+urlToImage: b'https://npr.brightspotcdn.com/dims3/default/strip/false/crop/3000x1688+0+0/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2F29%2F3a%2F7b6afc564f7baaba5b9a0ddee452%2Fdriftwoodfarms-louisiana-lesliegamboni22.jpg'
+publishedAt: b'2024-09-12T10:00:00Z'
+content: b'Climate change is affecting our food, and our food is affecting the climate.\xc2\xa0NPR is dedicating a week to\xc2\xa0stories and conversations\xc2\xa0about the search for solutions.\r\nA number of small Black-owned farms\xe2\x80\xa6 [+6629 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 6
+
+source:
+id: None
+name: KHON2
+
+author: b'Lucy Lopez'
+title: b'Big problem for Big Island, coconut rhinoceros beetle found'
+description: b'A single coconut rhinoceros beetle (CRB) was discovered this week in a trap set by the Hawaii Department of Agriculture (HDOA) during routine monitoring in...'
+url: b'https://www.khon2.com/local-news/big-problem-for-big-island-coconut-rhinoceros-beetle-found/'
+urlToImage: b'https://media.zenfs.com/en/khon_honolulu_articles_660/a29f84941511f78040999308091ce48d'
+publishedAt: b'2024-09-21T21:13:30Z'
+content: b'HONOLULU (KHON2) A single coconut rhinoceros beetle (CRB) was discovered this week in a trap set by the Hawaii Department of Agriculture (HDOA) during routine monitoring in Waikoloa.\r\nGet Hawaiis lat\xe2\x80\xa6 [+2900 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 7
+
+source:
+id: None
+name: BBC News
+
+
+title: b'More than 80 dead in Vietnam super typhoon'
+description: b'The most powerful storm to hit the country in 30 years has also left thousands stranded.'
+url: b'https://www.bbc.com/news/articles/cql3qvg3vk9o'
+urlToImage: b'https://ichef.bbci.co.uk/news/1024/branded_news/9cab/live/871fc9a0-6f57-11ef-a017-7b405a77e7bd.jpg'
+publishedAt: b'2024-09-10T10:14:53Z'
+content: b'At least 82 people have now died in Vietnam as a super typhoon which hit on Saturday continues to bring heavy rainfall, landslides and flooding.\r\nThousands of people were seen stranded on rooftops in\xe2\x80\xa6 [+1785 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 8
+
+source:
+id: None
+name: Slashdot.org
+
+author: b'msmash'
+title: b"Europe's Farming Lobbies Recognize Need To Eat Less Meat in Shared Vision Report"
+description: b'Europe\'s food and farming lobbies have recognized the need to eat less meat after hammering out a shared vision for the future of agriculture with green groups and other stakeholders. From a report: The wide-ranging report calls for "urgent, ambitious and fea\xe2\x80\xa6'
+url: b'https://news.slashdot.org/story/24/09/04/1449256/europes-farming-lobbies-recognize-need-to-eat-less-meat-in-shared-vision-report'
+urlToImage: b'https://a.fsdn.com/sd/topics/earth_64.png'
+publishedAt: b'2024-09-04T15:25:00Z'
+content: b'The wide-ranging report calls for "urgent, ambitious and feasible" change in farm and food systems and acknowledges that Europeans eat more animal protein than scientists recommend. It says support i\xe2\x80\xa6 [+1400 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 9
+
+source:
+id: None
+name: NPR
+
+author: b'Anna Canny'
+title: b'Climate change makes farming easier in Alaska. Indigenous growers hope to lead the way'
+description: b'Climate change threatens many traditional foods in Alaska. But it\xe2\x80\x99s also making farming more possible. A new training program aims to help Alaska Native communities grow more of their own food.'
+url: b'https://www.npr.org/2024/09/13/nx-s1-5002049/climate-change-farming-alaska-native'
+urlToImage: b'https://npr.brightspotcdn.com/dims3/default/strip/false/crop/6000x3375+0+313/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2F04%2Fba%2Fa0ad05ad44009f8b2215faff9eaf%2Fimg-9592.JPG'
+publishedAt: b'2024-09-13T16:01:47Z'
+content: b'Climate change is affecting our food, and our food is affecting the climate. NPR is dedicating a week to\xc2\xa0stories and conversations about the search for solutions.\r\nGrowing up in rural Alaska, Eva Daw\xe2\x80\xa6 [+8821 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 10
+
+source:
+id: None
+name: Gizmodo.com
+
+author: b'Matt Novak'
+title: b'Boar\xe2\x80\x99s Head Shuts Down Virginia Meat Plant After 9 Deaths Linked to Listeria'
+description: b'"This is a dark moment in our company\xe2\x80\x99s history," Boar\'s Head said in a statement.'
+url: b'https://gizmodo.com/boars-head-shuts-down-virginia-meat-plant-after-9-deaths-linked-to-listeria-2000498683'
+urlToImage: b'https://gizmodo.com/app/uploads/2024/09/boars-head-meat-recall-virginia-deaths.jpg'
+publishedAt: b'2024-09-13T18:00:42Z'
+content: b'Boar\xe2\x80\x99s Head is permanently closing its deli meat plant in Jarratt, Virginia, after a listeria outbreak that\xe2\x80\x99s killed nine people so far and sickened dozens of others in 18 states, according to a Frid\xe2\x80\xa6 [+2785 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 11
+
+source:
+id: None
+name: NPR
+
+author: b'The NPR Network'
+title: b'How we grow food affects the climate. Here are solutions communities are taking to help'
+description: b"We've gathered examples from across the NPR Network of how we can change the food we grow to support climate goals."
+url: b'https://www.npr.org/2024/09/14/g-s1-22158/climate-food-farming-solution'
+urlToImage: b'https://npr.brightspotcdn.com/dims3/default/strip/false/crop/5205x2928+0+263/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2Fa6%2Ff2%2F15103f88464ebb6b197776de4f09%2Fgettyimages-2166486728.jpg'
+publishedAt: b'2024-09-14T18:00:00Z'
+content: b"Climate change is affecting our food, and our food is affecting the climate.\xc2\xa0NPR is dedicating a week to\xc2\xa0stories and conversations about the search for solutions.\r\nAs NPR's climate solutions reporter\xe2\x80\xa6 [+4249 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 12
+
+source:
+id: None
+name: Gizmodo.com
+
+author: b'Isaac Schultz'
+title: b'Japan Exterminates Killer Mongooses That Just Had One Job'
+description: b"The mammals were brought onto an island to cull venomous snakes, but only had eyes for the island's endangered rabbits."
+url: b'https://gizmodo.com/japan-exterminates-killer-mongooses-that-just-had-one-job-2000494699'
+urlToImage: b'https://gizmodo.com/app/uploads/2024/09/small-indian-mongoose.jpg'
+publishedAt: b'2024-09-04T18:10:41Z'
+content: b'Mongooses deployed on a small Japanese island to cull a population of venomous snakes have themselves been culled by the state, after the mammals insisted on eating the local endangered rabbits.\r\nMon\xe2\x80\xa6 [+2821 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 13
+
+source:
+id: None
+name: Gizmodo.com
+
+author: b'Matt Novak'
+title: b'Hackers Threaten to Release Stolen Data From Planned Parenthood of Montana'
+description: b'The hack comes after abortion rights advocates in Montana secured enough signatures to put the issue on the ballot in November.'
+url: b'https://gizmodo.com/hackers-threaten-to-release-stolen-data-from-planned-parenthood-of-montana-2000495211'
+urlToImage: b'https://gizmodo.com/app/uploads/2024/09/planned-parenthood-getty.jpg'
+publishedAt: b'2024-09-05T17:30:37Z'
+content: b'Planned Parenthood of Montana announced on Wednesday a \xe2\x80\x9ccybersecurity incident\xe2\x80\x9d that was first identified on August 28, according to a new report from Cyberscoop. The healthcare organization had roug\xe2\x80\xa6 [+3385 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 14
+
+source:
+id: business-insider
+name: Business Insider
+
+author: b'Callum Burroughs'
+title: b'Solasta Bio, a Scottish startup replacing insecticides with greener alternatives, raised $14 million with this pitch deck'
+description: b'Solasta Bio, a Scottish startup targeting insects that damage crops, has raised funding to expand to the US.'
+url: b'https://www.businessinsider.com/solasta-bio-agriculture-biohealth-startup-raises-vc-funding-2024-9'
+urlToImage: b'https://i.insider.com/66e0615283b8099cf9fd203d?width=1200&format=jpeg'
+publishedAt: b'2024-09-11T07:00:02Z'
+content: b'Shireen Davies, CEO and cofounder at Solasta Bio.Andrew Cawley\r\n
- Solasta Bio, an agriculture tech startup, raised $14 million in Series A funding.
- Solasta specializes in green insectic\xe2\x80\xa6 [+2354 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 15
+
+source:
+id: None
+name: NPR
+
+author: b'NPR'
+title: b'Climate Solutions Week: The future of food'
+description: b'Climate change is affecting our food, and our food is affecting the climate.\xc2\xa0NPR is dedicating a week to stories and conversations about the search for solutions, from how we farm to what we cook to reducing food waste.'
+url: b'https://www.npr.org/2024/09/06/g-s1-19303/food-climate-solutions'
+urlToImage: b'https://npr.brightspotcdn.com/dims3/default/strip/false/crop/1920x1080+0+0/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2F6d%2F17%2Fd0c9d0a84e9fb49edb49df2ede3b%2Fclimatesolutions5.jpg'
+publishedAt: b'2024-09-06T16:48:31Z'
+content: b"September 9-15, 2024\r\nClimate experts say when it comes to global warming, pay attention to what we eat. Food and agriculture make up more than 25% of the pollution that heats our planet. What's driv\xe2\x80\xa6 [+789 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 16
+
+source:
+id: None
+name: Slashdot.org
+
+author: b'BeauHD'
+title: b'Kenya, US Sign Historic Pact On Nuclear Plans'
+description: b"Kenya signed a Memorandum of Understanding (MoU) with the U.S. on nuclear technology cooperation during the 2024 IAEA General Conference in Vienna, with the aim of safely integrating nuclear power into Kenya's energy mix by 2035. The agreement focuses on coll\xe2\x80\xa6"
+url: b'https://hardware.slashdot.org/story/24/09/19/0048203/kenya-us-sign-historic-pact-on-nuclear-plans'
+urlToImage: b'https://a.fsdn.com/sd/topics/power_64.png'
+publishedAt: b'2024-09-19T10:00:00Z'
+content: b"The historic pact came a day after Prime Cabinet Secretary Musalia Mudavadi addressed the general session of the conference. Mudavadi had outlined Kenya's ambitious plans to integrate nuclear power i\xe2\x80\xa6 [+1343 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 17
+
+source:
+id: None
+name: Gizmodo.com
+
+author: b'Matt Novak'
+title: b'Dems Call for Criminal Investigation in Boar\xe2\x80\x99s Head Listeria Outbreak That\xe2\x80\x99s Killed 10'
+description: b'The CDC warns it can take 10 weeks for some people to develop symptoms from listeria.'
+url: b'https://gizmodo.com/dems-call-for-criminal-investigation-in-boars-head-listeria-outbreak-thats-killed-10-2000504668'
+urlToImage: b'https://gizmodo.com/app/uploads/2024/09/boars-head-meat-getty.jpg'
+publishedAt: b'2024-09-28T12:00:48Z'
+content: b'Two Democratic politicians have called for federal agencies to open a criminal investigation into the Boar\xe2\x80\x99s Head listeria outbreak that\xe2\x80\x99s killed 10 people and caused 59 hospitalizations in 19 states\xe2\x80\xa6 [+4229 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 18
+
+source:
+id: None
+name: Science Daily
+
+
+title: b'Impact of climate change on agriculture suggests even greater challenges to the environment, global food supply and public health'
+description: b'A sweeping global research review of the links between climate and agriculture reveals the likelihood of an emergent feedback loop whereby, as climate change puts more pressure on the global food supply, agriculture will, by necessity, adopt practices that ma\xe2\x80\xa6'
+url: b'https://www.sciencedaily.com/releases/2024/09/240912135716.htm'
+urlToImage: b'https://www.sciencedaily.com/images/scidaily-icon.png'
+publishedAt: b'2024-09-12T17:57:16Z'
+content: b'A sweeping global research review of the links between climate and agriculture reveals the likelihood of an emergent feedback loop whereby, as climate change puts more pressure on the global food sup\xe2\x80\xa6 [+3776 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 19
+
+source:
+id: None
+name: Science Daily
+
+
+title: b'Low-carbon ammonia offers green alternative for agriculture and hydrogen transport'
+description: b'A new way of making ammonia by harnessing the unique power of liquid metal could lead to significant cuts in carbon emissions caused by production of the widely-used chemical. Ammonia is used in fertilizer to grow much of our food, but also plays a role in cl\xe2\x80\xa6'
+url: b'https://www.sciencedaily.com/releases/2024/09/240919115018.htm'
+urlToImage: b'https://www.sciencedaily.com/images/scidaily-icon.png'
+publishedAt: b'2024-09-19T15:50:18Z'
+content: b'A new way of making ammonia by harnessing the unique power of liquid metal could lead to significant cuts in carbon emissions caused by production of the widely-used chemical.Ammonia is used in ferti\xe2\x80\xa6 [+4452 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 20
+
+source:
+id: None
+name: Yahoo Entertainment
+
+author: b'Reuters'
+title: b'Russia declares farm emergency in Tomsk region because of crop damage'
+description: b'Russia has introduced a state of emergency for the farm sector in the Tomsk region of Siberia because of weather damage to crops, the regional governor said ...'
+url: b'https://finance.yahoo.com/news/russia-declares-farm-emergency-tomsk-103754516.html'
+urlToImage: b'https://s.yimg.com/cv/apiv2/social/images/yahoo_default_logo-1200x1200.png'
+publishedAt: b'2024-09-06T10:37:54Z'
+content: b'MOSCOW (Reuters) - Russia has introduced a state of emergency for the farm sector in the Tomsk region of Siberia because of weather damage to crops, the regional governor said on Friday.\r\nVladimir Ma\xe2\x80\xa6 [+1191 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 21
+
+source:
+id: None
+name: Yahoo Entertainment
+
+author: b'AFP'
+title: b'Vietnam president reiterates support for Cuba during official visit'
+description: b'Cuban President Miguel Diaz-Canel held talks with his Vietnamese counterpart To Lam in Havana on Thursday, with the two countries signing several bilateral...'
+url: b'https://www.yahoo.com/news/vietnam-president-reiterates-support-cuba-023625983.html'
+urlToImage: b'https://media.zenfs.com/en/afp.com/ff528bf9ba5d18bb8ec1f92e3e1dfac2'
+publishedAt: b'2024-09-27T02:36:25Z'
+content: b'Cuban President Miguel Diaz-Canel held talks with his Vietnamese counterpart To Lam in Havana on Thursday, with the two countries signing several bilateral agreements during the visit.\r\n"The world ha\xe2\x80\xa6 [+1394 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 22
+
+source:
+id: None
+name: NPR
+
+author: b'The Associated Press'
+title: b"France's Macron names EU's Brexit negotiator Michel Barnier as prime minister"
+description: b"The appointment ends 50 days of caretaker government, but the choice has already angered left wing lawmakers, who say the conservative Barnier won't get a majority backing in the National Assembly."
+url: b'https://www.npr.org/2024/09/05/nx-s1-5101536/france-prime-minister-michel-barnier'
+urlToImage: b'https://npr.brightspotcdn.com/dims3/default/strip/false/crop/6720x3780+0+350/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2F84%2Fe1%2F3fe914a741948badf9d69009b67c%2Fap24249414418011.jpg'
+publishedAt: b'2024-09-05T12:48:32Z'
+content: b'PARIS President Emmanuel Macron named the EUs Brexit negotiator, Michel Barnier, as Frances new prime minister on Thursday after more than 50 days of caretaker government.\r\nThe appointment of the 73-\xe2\x80\xa6 [+2229 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 23
+
+source:
+id: ars-technica
+name: Ars Technica
+
+author: b'Beth Mole'
+title: b'Bird flu is spreading rapidly in California; infected herds double over weekend'
+description: b'The state reported its first infected herds on August 30.'
+url: b'https://arstechnica.com/science/2024/09/bird-flu-is-spreading-rapidly-in-california-infected-herds-double-over-weekend/'
+urlToImage: b'https://cdn.arstechnica.net/wp-content/uploads/2024/09/GettyImages-2151866021-760x380.jpg'
+publishedAt: b'2024-09-23T22:43:34Z'
+content: b"Enlarge/ Cows being milked in Wisconsin on May 8, 2024.\r\n0\r\nThe H5N1 bird flu appears to be stampeding through dairy farms in California, the country's largest milk producer. Over the weekend, the to\xe2\x80\xa6 [+3592 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 24
+
+source:
+id: None
+name: Dezeen
+
+author: b'Dezeen staff'
+title: b'Seven architecture and design projects by students at Kean University'
+description: b'Dezeen School Shows: a community centre that promotes education and agriculture initiatives is included in this school show by students at Kean University. Also included is a redesign of a playground in Rome, Italy, and a clinic for children with ADHD. Kean U\xe2\x80\xa6'
+url: b'https://www.dezeen.com/2024/09/07/kean-unviersity-student-projects-dezeen-schoolshows/'
+urlToImage: b'https://static.dezeen.com/uploads/2024/08/kean-unversity-hero-sq-dezeen-schoolshows_dezeen_2364_col_1-600x600.jpg'
+publishedAt: b'2024-09-07T16:00:24Z'
+content: b'Dezeen School Shows: a community centre that promotes education and agriculture initiatives is included in this school show by students at Kean University. \r\nAlso included is a redesign of a playgrou\xe2\x80\xa6 [+9257 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 25
+
+source:
+id: the-next-web
+name: The Next Web
+
+author: b'Ioanna Lykiardopoulou'
+title: b'UK \xe2\x80\x98moonshot\xe2\x80\x99 agency to splash \xc2\xa381M on warning system for climate catastrophes'
+description: b'The UK\xe2\x80\x99s Advanced Research and Invention Agency (ARIA) is allocating \xc2\xa381mn to a new programme that aims to create early warning systems for climate tipping points. These are thresholds within the Earth\xe2\x80\x99s climate ecosystem, which \xe2\x80\x94 if crossed \xe2\x80\x94 can trigger dev\xe2\x80\xa6'
+url: b'https://thenextweb.com/news/uk-splash-81m-warning-system-climate-catastrophes'
+urlToImage: b'https://img-cdn.tnwcdn.com/image/tnw-blurple?filter_last=1&fit=1280%2C640&url=https%3A%2F%2Fcdn0.tnwcdn.com%2Fwp-content%2Fblogs.dir%2F1%2Ffiles%2F2024%2F09%2FUntitled-design-30.jpg&signature=8474a6a371fb036cfab6fccb6788bccb'
+publishedAt: b'2024-09-04T13:25:06Z'
+content: b'The UKs Advanced Research and Invention Agency (ARIA) is allocating \xc2\xa381mn to a new programme that aims to create early warning systems for climate tipping points.\r\nThese are thresholds within the Ear\xe2\x80\xa6 [+2733 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 26
+
+source:
+id: None
+name: Phys.Org
+
+author: b'PNAS Nexus'
+title: b'Silage production changes could cut greenhouse gas emissions from agriculture'
+description: b'Changes in silage production could help cut greenhouse gas emissions from agriculture. Agriculture is the largest source of nitrous oxide (N2O) emissions in the United States. N2O is the third most impactful greenhouse gas, yet one potential source\xe2\x80\x94silage\xe2\x80\x94has\xe2\x80\xa6'
+url: b'https://phys.org/news/2024-09-silage-production-greenhouse-gas-emissions.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/hires/2024/greenhouse-gas-emissio-1.jpg'
+publishedAt: b'2024-09-24T13:12:02Z'
+content: b'Changes in silage production could help cut greenhouse gas emissions from agriculture. Agriculture is the largest source of nitrous oxide (N2O) emissions in the United States. N2O is the third most i\xe2\x80\xa6 [+2119 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 27
+
+source:
+id: business-insider
+name: Business Insider
+
+author: b'Aditi Bharade'
+title: b"Whole Foods' CEO is betting that Gen Z will be down to fork out more cash for his company's groceries"
+description: b'Over half of the Gen Zers surveyed by Whole Foods said they were willing to pay more for sustainably grown food, CEO Jason Buechel said.'
+url: b'https://www.businessinsider.com/whole-foods-ceo-says-fate-of-food-business-gen-zers-2024-9'
+urlToImage: b'https://i.insider.com/66f37c1ecfb7f307e574b15e?width=1200&format=jpeg'
+publishedAt: b'2024-09-25T07:47:54Z'
+content: b'Whole Foods CEO Jason Buechel.Riccardo Savi/Getty Images\r\n
- Whole Foods CEO Jason Buechel said the grocery chain is listening to the needs of Gen Z.
- He said the company had conducted re\xe2\x80\xa6 [+2962 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 28
+
+source:
+id: business-insider
+name: Business Insider
+
+author: b'Hannah Abraham,Thibault Spirlet'
+title: b"Japan's new prime minister could try to shake up the country's military pact with the US"
+description: b'Shigeru Ishiba, a former defense minister, wants the have a more equal partnership with the US. He will be elected prime minister of Japan next week.'
+url: b'https://www.businessinsider.com/japan-prime-minister-shigeru-ishiba-shake-up-us-military-pact-2024-9'
+urlToImage: b'https://i.insider.com/66f67ca1f9f6733e4be02e6c?width=1200&format=jpeg'
+publishedAt: b'2024-09-27T10:11:34Z'
+content: b"Shigeru Ishiba will become Japan's next prime minister. The 67-year-old narrowly won the presidency of the ruling Liberal Democratic Party (LDP) on Friday.Pool/Getty Images\r\n
- Shigeru Ishiba is\xe2\x80\xa6 [+2940 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 29
+
+source:
+id: None
+name: Yahoo Entertainment
+
+author: b'Leo Collis'
+title: b"Scientists issue PSA after discovering highly invasive NYC species capable of spreading across entire East Coast: 'We're talking about a big, big issue here'"
+description: b'"It\xe2\x80\x99s not like just a crazy ant running around Manhattan."'
+url: b'https://www.yahoo.com/news/scientists-issue-psa-discovering-highly-103039627.html'
+urlToImage: b'https://s.yimg.com/ny/api/res/1.2/pDFIym24Fka1rg.duSHU7Q--/YXBwaWQ9aGlnaGxhbmRlcjt3PTEyMDA7aD02NzU-/https://media.zenfs.com/en/the_cool_down_737/1a44e731f7acc1df040a1021b5d00250'
+publishedAt: b'2024-09-11T10:30:39Z'
+content: b"Even the smallest creature can have a huge impact, as one species of ant is demonstrating in New York City.\r\nWhat's happening?\r\nSince first being spotted in the Big Apple in 2011, the Lasius emargina\xe2\x80\xa6 [+2178 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 30
+
+source:
+id: None
+name: Phys.Org
+
+author: b'SciencePOD'
+title: b"Assessing the environmental impacts of Brazil's biofuel sector"
+description: b"Mathematical analysis reveals that within Brazil's agriculture and livestock industry, the biofuels sector is most heavily reliant on other sectors with high greenhouse gas emissions."
+url: b'https://phys.org/news/2024-09-environmental-impacts-brazil-biofuel-sector.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/2024/assessing-the-environm-1.jpg'
+publishedAt: b'2024-09-19T14:58:28Z'
+content: b"Mathematical analysis reveals that within Brazil's agriculture and livestock industry, the biofuels sector is most heavily reliant on other sectors with high greenhouse gas emissions.\r\nBrazil is a wo\xe2\x80\xa6 [+2985 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 31
+
+source:
+id: None
+name: Phys.Org
+
+author: b'Robert Rodriguez, The Fresno Bee'
+title: b"Thousands of turkeys killed in California's Merced County as officials battle avian flu outbreak"
+description: b'More than 64,000 turkeys at a Merced County poultry operation are being killed after agriculture officials recently discovered they were infected with the highly pathogenic avian influenza.'
+url: b'https://phys.org/news/2024-09-thousands-turkeys-california-merced-county.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/hires/2022/turkey-farm.jpg'
+publishedAt: b'2024-09-24T11:40:01Z'
+content: b'More than 64,000 turkeys at a Merced County poultry operation are being killed after agriculture officials recently discovered they were infected with the highly pathogenic avian influenza.\r\nThe high\xe2\x80\xa6 [+1948 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 32
+
+source:
+id: None
+name: The Topeka Capital-Journal
+
+author: b'Jason Alatidd, Topeka Capital-Journal'
+title: b'Mold, cockroaches and more: Failed restaurant inspections in Topeka last month'
+description: b'One restaurant had both green and black mold. Another had baby and adult cockroaches. In all, eight Topeka area establishments were out of compliance.'
+url: b'https://www.cjonline.com/story/business/2024/09/04/kansas-food-safety-inspectors-cited-topeka-establishments-in-august/74893314007/'
+urlToImage: b'https://s.yimg.com/ny/api/res/1.2/q1vQgrVdIl.ptusSBr3Gyg--/YXBwaWQ9aGlnaGxhbmRlcjt3PTEyMDA7aD04MDA-/https://media.zenfs.com/en/the-topeka-capital-journal/12c351c275b12dbe700704295e93a75b'
+publishedAt: b'2024-09-04T09:14:46Z'
+content: b'Kansas food safety and lodging inspectors reported eight local establishments were out of compliance with state law during August inspections.\r\nKansas law delegates to the Kansas Department of Agricu\xe2\x80\xa6 [+10625 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 33
+
+source:
+id: None
+name: Indianacapitalchronicle.com
+
+author: b'Whitney Downard'
+title: b'Holcomb travels to Ukraine to meet with Zelenskyy'
+description: b'Gov. Eric Holcomb\xe2\x80\x99s trip to Europe will now include a visit to Ukraine and a meeting with President Volodymyr Zelenskyy. According to an administration...'
+url: b'https://indianacapitalchronicle.com/briefs/holcomb-travels-to-ukraine-to-meet-with-zelenskyy/'
+urlToImage: b'https://media.zenfs.com/en/indiana_capital_chronicle_articles_227/756f436eb97d08838d6a99fa539d6e25'
+publishedAt: b'2024-09-05T09:00:54Z'
+content: b'Gov. Eric Holcomb, right, and Indiana Adjutant Major General Dale Lyles of the Indiana National Guard during a virtual press conference on Aug. 30, 2024. (Screenshot of press conference)\r\nGov. Eric H\xe2\x80\xa6 [+2139 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 34
+
+source:
+id: None
+name: Windows Central
+
+author: b'kevinokemwa@outlook.com (Kevin Okemwa)'
+title: b'OpenAI casts its AI net wider across low-income countries with $1 million in API credits through its new OpenAI Academy initiative'
+description: b'OpenAI just unveiled a new program, OpenAI Academy, to help "developers and organizations leverage AI to solve hard problems and catalyze economic growth in their communities."'
+url: b'https://www.windowscentral.com/software-apps/openai-casts-its-ai-net-wider-across-low-income-countries-with-dollar1-million-in-api-credits-through-its-new-openai-academy-initiative'
+urlToImage: b'https://cdn.mos.cms.futurecdn.net/z56oL5aNvpksT8Hx6xkHu6-1200-80.jpg'
+publishedAt: b'2024-09-23T15:14:30Z'
+content: b'What you need to know\r\n
- OpenAI recently unveiled OpenAI Academy, which will use AI to help developers and organizations solve problems and enhance growth in low-income countries.
- Throu\xe2\x80\xa6 [+3646 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 35
+
+source:
+id: None
+name: Phys.Org
+
+author: b'Ansa Heyl'
+title: b'Transforming agriculture from carbon source to sink: Study shows potential of carbon sequestration options'
+description: b'The food system is one of the most significant sources of greenhouse gas emissions on the planet, making the reduction of emissions in this sector a priority for policymakers around the world. IIASA researchers explored the potential of carbon sequestration o\xe2\x80\xa6'
+url: b'https://phys.org/news/2024-09-agriculture-carbon-source-potential-sequestration.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/hires/2024/transforming-agricultu-2.jpg'
+publishedAt: b'2024-09-23T15:59:14Z'
+content: b'The food system is one of the most significant sources of greenhouse gas emissions on the planet, making the reduction of emissions in this sector a priority for policymakers around the world. IIASA \xe2\x80\xa6 [+4443 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 36
+
+source:
+id: None
+name: Forbes
+
+author: b'Jeff Opperman, Contributor, \n Jeff Opperman, Contributor\n https://www.forbes.com/sites/jeffopperman/'
+title: b'Muddy Waters And The Origins Of Agriculture'
+description: b'The first seeds for agriculture were quite literally planted 1000s of years ago in the soil left behind by a muddy river, a form of farming, flood recession agriculture, still practiced today.'
+url: b'https://www.forbes.com/sites/jeffopperman/2024/09/24/muddy-waters-and-the-origins-of-agriculture/'
+urlToImage: b'https://imageio.forbes.com/specials-images/imageserve/66f1d10d2ef971f164e0952b/0x0.jpg?format=jpg&height=900&width=1600&fit=bounds'
+publishedAt: b'2024-09-24T15:22:58Z'
+content: b'The Senegal River in Senegal during a flood; much of the floodplain that is inundated in this image ... [+] will be planted with crops as the flood recedes.\r\nGoogle Earth\r\nWhat is a good river? And w\xe2\x80\xa6 [+6679 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 37
+
+source:
+id: None
+name: Phys.Org
+
+author: b'Manaaki Whenua - Landcare Research'
+title: b'Heat, animal illness and erosion risks to affect NZ agriculture with changing climate'
+description: b'Scientists at Manaaki Whenua\xe2\x80\x94Landcare Research have worked closely with researchers from NIWA, AgResearch and Plant & Food Research to model the likely risks of a warming climate across different agricultural sectors in New Zealand. The study is published in \xe2\x80\xa6'
+url: b'https://phys.org/news/2024-09-animal-illness-erosion-affect-nz.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/hires/2024/dry-crops.jpg'
+publishedAt: b'2024-09-25T18:55:03Z'
+content: b'Scientists at Manaaki WhenuaLandcare Research have worked closely with researchers from NIWA, AgResearch and Plant & Food Research to model the likely risks of a warming climate across different \xe2\x80\xa6 [+3391 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 38
+
+source:
+id: None
+name: Quartz India
+
+author: b'Francisco Velasquez'
+title: b"Bird flu hits California's dairy farms"
+description: b'Cows at three California diary farms have been placed under quarantine after testing positive for avian influenza, commonly known as bird flu, according to the state\xe2\x80\x99s department of food and agriculture (CDFA). Read more...'
+url: b'https://qz.com/bird-flu-outbreak-california-diary-farms-1851638317'
+urlToImage: b'https://i.kinja-img.com/image/upload/c_fill,h_675,pg_1,q_80,w_1200/0f577bfd03512c1b80046949c983d328.jpg'
+publishedAt: b'2024-09-03T14:25:00Z'
+content: b'Cows at three California diary farms have been placed under quarantine after testing positive for avian influenza, commonly known as bird flu, according to the states department of food and agricultu\xe2\x80\xa6 [+2003 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 39
+
+source:
+id: abc-news
+name: ABC News
+
+author: b'Youri Benadjaoud, Meredith Deliso'
+title: b'Missouri reports 1st human case of bird flu in the state'
+description: b'An adult with underlying medical conditions was hospitalized on Aug. 22 and has since recovered, the Missouri health department said.'
+url: b'https://abcnews.go.com/Health/missouri-reports-first-human-case-bird-flu-in-state/story?id=113474247'
+urlToImage: b'https://i.abcnewsfe.com/a/87a84263-533e-4444-8471-7106ea6f4c58/bird-gty-er-240906_1725663565504_hpMain_16x9.jpg?w=1600'
+publishedAt: b'2024-09-07T00:29:09Z'
+content: b"Missouri reported its first confirmed human case of bird flu in a person who reported no exposure to animals, the state's health department said Friday.\r\nThe case brings the national total to 14 so f\xe2\x80\xa6 [+1902 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 40
+
+source:
+id: None
+name: Science Daily
+
+
+title: b'Fungus-controlled robots tap into the unique power of nature'
+description: b"In creating a pair of new robots, researchers cultivated an unlikely component, one found on the forest floor: fungal mycelia. By harnessing mycelia's innate electrical signals, the researchers discovered a new way of controlling 'biohybrid' robots that can p\xe2\x80\xa6"
+url: b'https://www.sciencedaily.com/releases/2024/09/240904192325.htm'
+urlToImage: b'https://www.sciencedaily.com/images/scidaily-icon.png'
+publishedAt: b'2024-09-04T23:23:25Z'
+content: b'Building a robot takes time, technical skill, the right materials -- and sometimes, a little fungus.In creating a pair of new robots, Cornell University researchers cultivated an unlikely component, \xe2\x80\xa6 [+2374 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 41
+
+source:
+id: None
+name: NPR
+
+author: b'The NPR Network'
+title: b'Hungry for new podcasts? Here are 8 episodes about how climate change affects our food'
+description: b"Add these episodes to your listening rotation during the NPR Network's Climate Solutions Week, where we're dedicated to stories and conversations about the search for climate solutions."
+url: b'https://www.npr.org/2024/09/09/g-s1-20267/best-podcasts-food-climate'
+urlToImage: b'https://npr.brightspotcdn.com/dims3/default/strip/false/crop/3000x1688+0+151/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2Fb7%2F7c%2Faebb929b44cf9d6f77ee6b9a93d8%2Fclimate-week-lead-v1.jpg'
+publishedAt: b'2024-09-09T18:00:00Z'
+content: b'Climate change is affecting our food, and our food is affecting the climate.\xc2\xa0NPR is dedicating a week to stories and conversations about the search for solutions.\r\nLooking for solutions to our food n\xe2\x80\xa6 [+3893 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 42
+
+source:
+id: business-insider
+name: Business Insider
+
+author: b'Erin Liam'
+title: b'I took a 50% pay cut to leave my sales job and work on a potato farm. I have no regrets.'
+description: b'Tyler Heppell says he has learned more about business while working on his family farm than he did in his sales job.'
+url: b'https://www.businessinsider.com/millennial-pay-cut-career-switch-leave-sales-job-potato-farming-2024-9'
+urlToImage: b'https://i.insider.com/66d133081d8d2deb96b78fb2?width=1200&format=jpeg'
+publishedAt: b'2024-09-03T00:17:02Z'
+content: b'Tyler Heppell left his sales job to work on his family farm.Tyler Heppell\r\n
- Five years after working in sales, Tyler Heppell felt he had lost his purpose and quit.
- He intended to work \xe2\x80\xa6 [+4413 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 43
+
+source:
+id: business-insider
+name: Business Insider
+
+author: b'Natalie Musumeci'
+title: b"Boar's Head 'negligence' led to the listeria-related death of a Holocaust survivor, his family says in lawsuit"
+description: b"The family of G\xc3\xbcnter Morgenstein has filed the first wrongful death lawsuit against Boar's Head in connection to the ongoing listeria outbreak."
+url: b'https://www.businessinsider.com/boars-head-listeria-outbreak-deli-meat-death-holocaust-survivor-2024-9'
+urlToImage: b'https://i.insider.com/66d741d21d8d2deb96b83b4d?width=1200&format=jpeg'
+publishedAt: b'2024-09-03T17:58:39Z'
+content: b"G\xc3\xbcnter Morgenstein's family has filed a wrongful death lawsuit against Boar's Head.Handout; Justin Sullivan/Getty Images\r\n
- The family of a Holocaust survivor has filed a wrongful-death lawsuit\xe2\x80\xa6 [+4249 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 44
+
+source:
+id: None
+name: Phys.Org
+
+author: b'Ifedotun Aina, Opeyemi Ayinde'
+title: b'Nigerian farmers lack insurance: Payouts triggered by weather data offer a solution'
+description: b"Agriculture is hugely important to Nigeria. It makes up about a quarter of the country's economy, and almost half of the population are smallholder farmers. Most farm on less than 10 hectares of land."
+url: b'https://phys.org/news/2024-09-nigerian-farmers-lack-payouts-triggered.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/hires/2024/nigerian-farmer.jpg'
+publishedAt: b'2024-09-11T16:42:04Z'
+content: b"Agriculture is hugely important to Nigeria. It makes up about a quarter of the country's economy, and almost half of the population are smallholder farmers. Most farm on less than 10 hectares of land\xe2\x80\xa6 [+7116 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 45
+
+source:
+id: None
+name: Phys.Org
+
+author: b'Science X'
+title: b'Satellite remote sensing shows potential in agricultural monitoring'
+description: b'Paddy rice is an important agricultural product, and accurate mapping of paddy rice fields is essential for enhancing food security, promoting sustainable agriculture, increasing crop yields, and facilitating technological advancements.'
+url: b'https://phys.org/news/2024-09-satellite-remote-potential-agricultural.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/hires/2024/satellite-remote-sensi-1.jpg'
+publishedAt: b'2024-09-04T19:13:03Z'
+content: b'Paddy rice is an important agricultural product, and accurate mapping of paddy rice fields is essential for enhancing food security, promoting sustainable agriculture, increasing crop yields, and fac\xe2\x80\xa6 [+2262 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 46
+
+source:
+id: None
+name: Forbes
+
+author: b'Don Tse, Contributor, \n Don Tse, Contributor\n https://www.forbes.com/sites/dontse/'
+title: b'How Small Malthouses Are Changing Beer, Whiskey And Agriculture'
+description: b'When the Craft Maltsters Guild formed in 2013, it did so with a mere eight member malthouses. Today, the Guild boasts 110 member malthouses.'
+url: b'https://www.forbes.com/sites/dontse/2024/09/01/how-small-malthouses-are-changing-beer-whiskey-and-agriculture/'
+urlToImage: b'https://imageio.forbes.com/specials-images/imageserve/66b26cba54a6db8dd6efa77d/0x0.jpg?format=jpg&height=900&width=1600&fit=bounds'
+publishedAt: b'2024-09-01T11:45:00Z'
+content: b'Malt made at small malthouses is often handmade, including manually raking the malt to prevent ... [+] clumping as the barley germinates.\r\nRiverbend Malt House\r\nWhen the Craft Maltsters Guild formed \xe2\x80\xa6 [+3227 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 47
+
+source:
+id: None
+name: Forbes
+
+author: b'Judith Magyar, SAP, \n Judith Magyar, SAP\n https://www.forbes.com/sites/sap/people/magyarjudith/'
+title: b'Could A Consortium For Regenerative Agriculture End World Hunger?'
+description: b'The negative environmental and social consequences of current food systems are impossible to ignore. Change is not impossible, but it will take a new approach.'
+url: b'https://www.forbes.com/sites/sap/2024/09/25/could-a-consortium-for-regenerative-agriculture-end-world-hunger/'
+urlToImage: b'https://imageio.forbes.com/specials-images/imageserve/66f43d4899b1e3c47cc62ad9/0x0.jpg?format=jpg&crop=2629,1479,x0,y135,safe&height=900&width=1600&fit=bounds'
+publishedAt: b'2024-09-25T16:43:26Z'
+content: b'The second UN Sustainable Development Goal (SDG) is ending hunger. Industrial agriculture has been widely promoted as a means to achieving that goal, but despite increases in global productivity and \xe2\x80\xa6 [+6082 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 48
+
+source:
+id: None
+name: Phys.Org
+
+author: b'Justin Zadorsky'
+title: b'Researchers uncover cause of a rapidly changing remote water system'
+description: b'Nestled in the Uinta Mountains of northern Utah, a series of pristine lakes are facing a new threat\xe2\x80\x94humans. Geography professor and chair Katrina Moser led a team of researchers in the region this summer to better understand how human activity, like agricultu\xe2\x80\xa6'
+url: b'https://phys.org/news/2024-09-uncover-rapidly-remote.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/hires/2024/western-research-uncov.jpg'
+publishedAt: b'2024-09-20T17:04:16Z'
+content: b'Nestled in the Uinta Mountains of northern Utah, a series of pristine lakes are facing a new threathumans. Geography professor and chair Katrina Moser led a team of researchers in the region this sum\xe2\x80\xa6 [+5234 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 49
+
+source:
+id: None
+name: Phys.Org
+
+author: b'Science X'
+title: b'Beef industry can reduce emissions by up to 30%, says new research'
+description: b"Greenhouse gases resulting from human activity have been the largest driver of climate change since the mid-20th century\xe2\x80\x94especially from agriculture. The U.S. beef industry alone is responsible for 3.3% of the nation's total emissions, and even with greater r\xe2\x80\xa6"
+url: b'https://phys.org/news/2024-09-beef-industry-emissions.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/hires/2024/beef-industry-can-redu.jpg'
+publishedAt: b'2024-09-03T20:34:03Z'
+content: b'Greenhouse gases resulting from human activity have been the largest driver of climate change since the mid-20th centuryespecially from agriculture. The U.S. beef industry alone is responsible for 3.\xe2\x80\xa6 [+4225 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 50
+
+source:
+id: None
+name: Phys.Org
+
+author: b'Marianne Stein'
+title: b'Climate-smart grazing: Study shows how weather mitigates nitrogen runoff'
+description: b'Livestock production is an important component of U.S. agriculture, with global demand for meat and dairy expected to double in the coming decades. This increase will lead to intensified grazing on U.S. grasslands, potentially exacerbating water quality degra\xe2\x80\xa6'
+url: b'https://phys.org/news/2024-09-climate-smart-grazing-weather-mitigates.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/hires/2024/climate-smart-grazing.jpg'
+publishedAt: b'2024-09-25T20:50:01Z'
+content: b'by Marianne Stein, University of Illinois College of Agricultural, Consumer and Environmental Sciences (ACES)Livestock production is an important component of U.S. agriculture, with global demand for\xe2\x80\xa6 [+4419 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 51
+
+source:
+id: None
+name: Phys.Org
+
+author: b'Agricultural Research Service'
+title: b'Pitting good versus bad fungi on sweet corn: A delicate dance'
+description: b'The same defenses that help some varieties of sweet corn resist fungal diseases can also stymie the potency of a beneficial fungus used to kill hungry caterpillar pests, studies by Agricultural Research Service (ARS) scientists suggest. The researchers detail\xe2\x80\xa6'
+url: b'https://phys.org/news/2024-09-pitting-good-bad-fungi-sweet.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/2024/pitting-good-versus-ba.jpg'
+publishedAt: b'2024-09-30T16:55:15Z'
+content: b'The same defenses that help some varieties of sweet corn resist fungal diseases can also stymie the potency of a beneficial fungus used to kill hungry caterpillar pests, studies by Agricultural Resea\xe2\x80\xa6 [+3686 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 52
+
+source:
+id: None
+name: Digital Trends
+
+author: b'Georgina Torbet'
+title: b'See the first images from Europe\xe2\x80\x99s Sentinel-2C satellite looking down on Earth'
+description: b'Earlier this month, the European Space Agency (ESA) launched its newest Earth-observation satellite, known as Copernicus Sentinel-2C.'
+url: b'https://www.digitaltrends.com/space/sentinel-2c-first-images/'
+urlToImage: b'https://www.digitaltrends.com/wp-content/uploads/2024/09/Seville_from_Copernicus_Sentinel-2C.jpg?resize=1200%2C630&p=1'
+publishedAt: b'2024-09-18T01:00:03Z'
+content: b'Earlier this month, the European Space Agency (ESA) launched its newest Earth-observation satellite, known as Copernicus Sentinel-2C. Joining its siblings Sentinel-2A and B, it will take high-resolut\xe2\x80\xa6 [+2507 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 53
+
+source:
+id: None
+name: BBC News
+
+
+title: b"'Catastrophic' super typhoon Yagi barrels towards China"
+description: b'Yagi has doubled in strength after wrecking havoc in the northern Philippines early this week.'
+url: b'https://www.bbc.com/news/articles/c4gz3rk71n7o'
+urlToImage: b'https://ichef.bbci.co.uk/news/1024/branded_news/5c9b/live/18d301a0-6c06-11ef-9365-bd9226369161.jpg'
+publishedAt: b'2024-09-06T04:34:26Z'
+content: b"One of this year's most powerful storms is barrelling toward southern China and is expected to make landfall in the popular tourist island of Hainan later today.\r\nTrains, boats and flights have been \xe2\x80\xa6 [+2301 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 54
+
+source:
+id: None
+name: CNET
+
+author: b'Jessica Rendall'
+title: b'Human Bird Flu Case Reported in US Without Known Animal Contact'
+description: b"Other US cases of H5 were detected in people who've worked directly with sick animals. Health officials say the risk to the general public remains low."
+url: b'https://www.cnet.com/health/medical/human-bird-flu-case-reported-in-us-without-known-animal-contact/'
+urlToImage: b'https://www.cnet.com/a/img/resize/e6798ff1fdaa4f9add1f598a22413a4c26b2d40b/hub/2024/07/24/65a5f3ad-f2c1-4473-8b7d-0423df1d2a7f/gettyimages-1515026137.jpg?auto=webp&fit=crop&height=675&width=1200'
+publishedAt: b'2024-09-07T03:32:00Z'
+content: b"A person in Missouri was sick with bird flu, or avian influenza, but as of now doesn't have a known exposure to animals in the ongoing bird flu outbreak, according to a Friday news release from the U\xe2\x80\xa6 [+6840 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 55
+
+source:
+id: None
+name: Thekitchn.com
+
+author: b'Ashia Aubourg'
+title: b'This Cleaning Hack Prevents Fruit Flies from Taking Over Your Kitchen'
+description: b"Bonus: It's free.\nREAD MORE..."
+url: b'https://www.thekitchn.com/water-fruit-fly-trick-23680478'
+urlToImage: b'https://cdn.apartmenttherapy.info/image/upload/f_auto,q_auto:eco,c_fill,g_auto,w_1500,ar_3:2/k%2FPhoto%2FLifestyle%2F2021-09-The-Most-Brilliant-Use-for-a-Wine-Cork-Ever%2FLast-Thing-Wine-Cork-2'
+publishedAt: b'2024-09-13T20:15:00Z'
+content: b'We independently select these products\xe2\x80\x94if you buy from one of our links, we may earn a commission. All prices were accurate at the time of publishing.\r\nFor some reason, fruit flies cant get enough of\xe2\x80\xa6 [+1594 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 56
+
+source:
+id: None
+name: NPR
+
+author: b'Manola Secaira'
+title: b'California farmers turn to agave amid drought conditions and climate change'
+description: b"Farmers in California are trying to plant crops that don't require a lot of water. Some are turning to growing agave as a response to a warming state."
+url: b'https://www.npr.org/2024/09/06/nx-s1-5002056/california-farmers-agave-drought-conditions-climate-change'
+urlToImage: b'https://npr.brightspotcdn.com/dims3/default/strip/false/crop/3000x1688+0+135/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2Fbc%2F74%2F88897500479f90e4e39940fdedb3%2Frodriquez-orlando.jpg'
+publishedAt: b'2024-09-09T10:00:00Z'
+content: b"Climate change is affecting our food, and our food is affecting the climate.\xc2\xa0NPR is dedicating a week to stories and conversations about the search for solutions.\r\nMost of the United States' fruits a\xe2\x80\xa6 [+12610 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 57
+
+source:
+id: None
+name: Science Daily
+
+
+title: b'New research on plant stem cells shines light on how plants grow stronger'
+description: b"A professor of plant molecular biology wants people to know that plants have stem cells too. Just like in the medical world, plant stem cells could support human growth and development when used to improve the food supply. The researcher's lab discovered a tr\xe2\x80\xa6"
+url: b'https://www.sciencedaily.com/releases/2024/09/240912135746.htm'
+urlToImage: b'https://www.sciencedaily.com/images/scidaily-icon.png'
+publishedAt: b'2024-09-12T17:57:46Z'
+content: b"Stem cell research is a hot topic. With applications for a host of human medical advancements, researchers have been working with animal and human stem cells for years.But animals aren't the only one\xe2\x80\xa6 [+3291 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 58
+
+source:
+id: None
+name: NPR
+
+author: b'Benjamin Thorp'
+title: b'Could bird flu spread at state fairs? Here\xe2\x80\x99s why health experts advise caution'
+description: b'Corn dogs, deep-fried Twinkies, butter sculptures and influenza virus? Here\xe2\x80\x99s why state fairs could be potential breeding grounds for viral mutation.'
+url: b'https://www.npr.org/sections/shots-health-news/2024/09/04/nx-s1-5096213/state-fair-bird-flu-cows-risk-spread'
+urlToImage: b'https://npr.brightspotcdn.com/dims3/default/strip/false/crop/1760x990+0+92/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2F65%2F91%2Fbf72ff8745a29f84200168aa6fbc%2F1.jpg'
+publishedAt: b'2024-09-04T11:00:00Z'
+content: b'Between July and October states across the country hold their annual state fairs.\r\nThe events are known for things like Ferris wheels and corn dogs, sculptures made entirely from butter and the bigge\xe2\x80\xa6 [+6439 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 59
+
+source:
+id: business-insider
+name: Business Insider
+
+author: b'Ana Altchek,Grace Eliza Goodwin'
+title: b'Trump is threatening tariffs on yet another business \xe2\x80\x94 and economists say it makes no sense'
+description: b'Donald Trump threatened to impose a 200% tariff on John Deere if it follows through on plans to take some its manufacturing to Mexico.'
+url: b'https://www.businessinsider.com/trump-tariff-threat-john-deere-economists-baffled-2024-9'
+urlToImage: b'https://i.insider.com/66f35283cfb7f307e574afad?width=1200&format=jpeg'
+publishedAt: b'2024-09-25T08:00:02Z'
+content: b'Trump threatened a 200% tariff on John Deere if it moves manufacturing to Mexico.Win McNamee/Getty\r\n
- Trump threatened a 200% tariff on John Deere if it moves some of its manufacturing to Mexic\xe2\x80\xa6 [+6678 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 60
+
+source:
+id: None
+name: Phys.Org
+
+
+title: b'Unveiling soil moisture patterns with advanced navigation tech'
+description: b'A pioneering method for soil moisture retrieval using satellite navigation systems has been introduced, significantly boosting the accuracy and efficiency of global data collection. The research, published in the journal Satellite Navigation, tackles the chal\xe2\x80\xa6'
+url: b'https://phys.org/news/2024-09-unveiling-soil-moisture-patterns-advanced.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/2024/satellite-sleuths-unve.jpg'
+publishedAt: b'2024-09-16T15:13:03Z'
+content: b'A pioneering method for soil moisture retrieval using satellite navigation systems has been introduced, significantly boosting the accuracy and efficiency of global data collection. The research, pub\xe2\x80\xa6 [+4422 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 61
+
+source:
+id: None
+name: Phys.Org
+
+author: b'European Commission, Joint Research Centre (JRC)'
+title: b'Report: Cutting methane emissions key to fighting climate change and harmful ozone'
+description: b'Many human activities lead to methane being released into the atmosphere. Agriculture, landfills, wastewater, and fossil fuel production and distribution are the biggest contributors. These make up roughly 60% of global methane emissions, and natural sources \xe2\x80\xa6'
+url: b'https://phys.org/news/2024-09-methane-emissions-key-climate-ozone.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/2024/cutting-methane-emissi-1.jpg'
+publishedAt: b'2024-09-23T14:03:47Z'
+content: b'Many human activities lead to methane being released into the atmosphere. Agriculture, landfills, wastewater, and fossil fuel production and distribution are the biggest contributors. These make up r\xe2\x80\xa6 [+4160 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 62
+
+source:
+id: None
+name: Phys.Org
+
+author: b'Science X'
+title: b'Unlocking plant defense: Bacterial hijacking exposed'
+description: b"Bacterial wilt caused by Ralstonia solanacearum poses a severe threat to agriculture worldwide, affecting numerous crops. The pathogen's arsenal of type III effectors (T3Es) enables it to manipulate host defense mechanisms, aiding infection. One major challen\xe2\x80\xa6"
+url: b'https://phys.org/news/2024-09-defense-bacterial-hijacking-exposed.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/hires/2024/unlocking-plant-defens.jpg'
+publishedAt: b'2024-09-10T18:46:03Z'
+content: b"Bacterial wilt caused by Ralstonia solanacearum poses a severe threat to agriculture worldwide, affecting numerous crops. The pathogen's arsenal of type III effectors (T3Es) enables it to manipulate \xe2\x80\xa6 [+3446 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 63
+
+source:
+id: None
+name: Yahoo Entertainment
+
+author: b'SETH BORENSTEIN'
+title: b'Pollution of the potent warming gas methane soars and people are mostly to blame'
+description: b'The amount and proportion of the powerful heat-trapping gas methane that humans spew into the atmosphere is rising, helping to turbocharge climate change, a ...'
+url: b'https://www.yahoo.com/news/pollution-potent-warming-gas-methane-075627841.html'
+urlToImage: b'https://s.yimg.com/ny/api/res/1.2/05tRs817L17DeAGGblV9lQ--/YXBwaWQ9aGlnaGxhbmRlcjt3PTEyMDA7aD04MDA-/https://media.zenfs.com/en/ap.org/d91525b7a913b3662f0e41ab03e8209c'
+publishedAt: b'2024-09-10T07:56:27Z'
+content: b'The amount and proportion of the powerful heat-trapping gas methane that humans spew into the atmosphere is rising, helping to turbocharge climate change, a new study finds.\r\nTuesdays study finds tha\xe2\x80\xa6 [+4333 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 64
+
+source:
+id: None
+name: Yahoo Entertainment
+
+author: b'Tyler Slauson'
+title: b'River otter pulls young child into WA water, attacks family at marina'
+description: b"The otter continued to attack when the child's mother came to the rescue."
+url: b'https://www.yahoo.com/news/river-otter-pulls-young-child-235626558.html'
+urlToImage: b'https://s.yimg.com/ny/api/res/1.2/yLNEbzianm8Kkz8kT82Q1w--/YXBwaWQ9aGlnaGxhbmRlcjt3PTEyMDA7aD04NDQ-/https://media.zenfs.com/en/kcpq_fox_local_articles_135/ff8d29ecbdda009d8dd5eceee7c1541c'
+publishedAt: b'2024-09-12T23:56:26Z'
+content: b'BREMERTON, Wash. - A young child was pulled into the water by a river otter Thursday morning while walking on the dock at Bremerton Marina in Kitsap County.\r\nThe Washington Department of Fish and Wil\xe2\x80\xa6 [+2099 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 65
+
+source:
+id: None
+name: BBC News
+
+author: b'BBC'
+title: b'More than 80 dead in Vietnam super typhoon'
+description: b'The most powerful storm to hit the country in 30 years has also left thousands stranded.'
+url: b'https://www.bbc.com/news/articles/cql3qvg3vk9o?xtor=AL-72-%5Bpartner%5D-%5Byahoo.north.america%5D-%5Bheadline%5D-%5Bnews%5D-%5Bbizdev%5D-%5Bisapi%5D'
+urlToImage: b'https://s.yimg.com/ny/api/res/1.2/g2SqB9U0j7qtMGNktGLG2w--/YXBwaWQ9aGlnaGxhbmRlcjt3PTEyMDA7aD02NzU-/https://media.zenfs.com/en/bbc_us_articles_995/d9165bd00f7eaa58f94410dae30814b6'
+publishedAt: b'2024-09-10T10:14:59Z'
+content: b'At least 82 people have now died in Vietnam as a super typhoon which hit on Saturday continues to bring heavy rainfall, landslides and flooding.\r\nThousands of people were seen stranded on rooftops in\xe2\x80\xa6 [+1959 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 66
+
+source:
+id: None
+name: Just-food.com
+
+author: b'Dean Best'
+title: b'Number of deaths linked to Boar\xe2\x80\x99s Head products rises'
+description: b'The US Centers for Disease Control and Prevention reported more than 50 cases of people being hospitalised.'
+url: b'https://www.just-food.com/news/number-of-deaths-linked-to-boars-head-products-rise/'
+urlToImage: b'https://s.yimg.com/ny/api/res/1.2/9RuIpGNYY8sQd4jCoRu.jg--/YXBwaWQ9aGlnaGxhbmRlcjt3PTEyMDA7aD02NzU-/https://media.zenfs.com/en/just_food_692/6e9906730e68934f2e8bed7c0132882c'
+publishedAt: b'2024-09-02T13:37:47Z'
+content: b'The deaths of nine people have been linked to a recall of Boars Head deli meats, according to government figures.\r\nFigures released on Wednesday by the US Centers for Disease Control and Prevention (\xe2\x80\xa6 [+2473 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 67
+
+source:
+id: None
+name: Forbes
+
+author: b'Christine Ro, Contributor, \n Christine Ro, Contributor\n https://www.forbes.com/sites/christinero/'
+title: b'Big Problems With Big Livestock Farms'
+description: b'New analysis of the most recent Census of Agriculture shows that animal protein purchased in the U.S. is overwhelmingly likely to come from the largest of large farms'
+url: b'https://www.forbes.com/sites/christinero/2024/09/16/big-problems-with-big-livestock-farms/'
+urlToImage: b'https://imageio.forbes.com/specials-images/imageserve/66e45cfca1f163ceaa358fa7/0x0.jpg?format=jpg&crop=2053,1155,x30,y0,safe&height=900&width=1600&fit=bounds'
+publishedAt: b'2024-09-16T06:00:00Z'
+content: b'Cows at Pinhook Farm\r\nSeth Watkins\r\nOver the years Seth Watkins has won praise for the way he farms. Pinhook Farm, in southern Iowa, grows diverse crops without commercial fertilizers and with limite\xe2\x80\xa6 [+11813 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 68
+
+source:
+id: None
+name: Forbes
+
+author: b'Christine Ro, Contributor, \n Christine Ro, Contributor\n https://www.forbes.com/sites/christinero/'
+title: b'Why African Groups Want Reparations From The Gates Foundation'
+description: b'The open letter charges funders with promoting a type of corporate, industrial agriculture that does not respect African ecosystems or agricultural traditions,'
+url: b'https://www.forbes.com/sites/christinero/2024/09/02/why-african-groups-want-reparations-from-the-gates-foundation/'
+urlToImage: b'https://imageio.forbes.com/specials-images/imageserve/66d2ce132ea24fd2d6e7e24f/0x0.jpg?format=jpg&height=900&width=1600&fit=bounds'
+publishedAt: b'2024-09-02T06:00:00Z'
+content: b'A Seed Savers Network seed bank in Gilgil, Kenya. The Kenyan NGO Seed Savers Network works with ... [+] smallholder farmers on seed access, traditional crop varieties, and biodiversity. (Photo by Jam\xe2\x80\xa6 [+10867 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 69
+
+source:
+id: None
+name: Theness.com
+
+author: b'Steven Novella'
+title: b'Decarbonizing Aviation and Agriculture'
+description: b'When we talk about reducing carbon release in order to slow down and hopefully stop anthropogenic global warming much of the focus is on the energy and transportation sectors. There is a good reason for this \xe2\x80\x93 the energy sector is responsible for 25% of green\xe2\x80\xa6'
+url: b'https://theness.com/neurologicablog/decarbonizing-aviation-and-agriculture/'
+urlToImage: b'https://theness.com/neurologicablog/wp-content/uploads/sites/3/2024/09/total-ghg-2024.png'
+publishedAt: b'2024-09-24T12:04:22Z'
+content: b'When we talk about reducing carbon release in order to slow down and hopefully stop anthropogenic global warming much of the focus is on the energy and transportation sectors. There is a good reason \xe2\x80\xa6 [+5934 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 70
+
+source:
+id: None
+name: Quartz India
+
+author: b'Bruce Gil'
+title: b"The Boar's Head listeria outbreak has been linked to a 10th death. Lawmakers want answers"
+description: b'A tenth person has died in connection to a multi-state listeria outbreak linked to a Boar\xe2\x80\x99s Head plant in Virginia. The news follows a nationwide recall of potentially contaminated deli meats from the company.Read more...'
+url: b'https://qz.com/boars-head-listeria-outbreak-death-1851658345'
+urlToImage: b'https://i.kinja-img.com/image/upload/c_fill,h_675,pg_1,q_80,w_1200/b8c1c94b03c0dd8f0e5f2b6bb321a8c9.jpg'
+publishedAt: b'2024-09-26T14:35:00Z'
+content: b'In This Story\r\nA tenth person has died in connection to a multi-state listeria outbreak linked to a Boars Head plant in Virginia. The news follows a nationwide recall of potentially contaminated deli\xe2\x80\xa6 [+2398 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 71
+
+source:
+id: None
+name: BBC News
+
+
+title: b'Italian minister quits after appointing ex-lover as adviser'
+description: b'The culture minister admits to hiring his ex-lover as an consultant, after starting an affair with her in May.'
+url: b'https://www.bbc.com/news/articles/cj4xkr5zvpdo'
+urlToImage: b'https://ichef.bbci.co.uk/news/1024/branded_news/2354/live/ba53d5f0-6c73-11ef-8f7b-5519bba3a793.jpg'
+publishedAt: b'2024-09-06T17:48:20Z'
+content: b"Italy's culture minister has resigned after a row over the appointment of his former mistress as a top adviser caused weeks of controversy for the the country's right-wing government.\r\nGennaro Sangiu\xe2\x80\xa6 [+3490 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 72
+
+source:
+id: None
+name: BBC News
+
+
+title: b'Kyiv names new foreign minister in cabinet revamp'
+description: b'Parliament approves several new ministers, but some MPs accuse President Zelensky of centralising power.'
+url: b'https://www.bbc.com/news/articles/cwywj71ywyeo'
+urlToImage: b'https://ichef.bbci.co.uk/news/1024/branded_news/84de/live/c55110c0-6b98-11ef-811b-09c4913a8684.jpg'
+publishedAt: b'2024-09-05T15:58:26Z'
+content: b"Ukraine's parliament has approved Andrii Sybiha, a 49-year-old former diplomat and ex-adviser to President Volodymyr Zelensky, as the country's new foreign minister. \r\nIt comes as Mr Zelensky carries\xe2\x80\xa6 [+3878 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 73
+
+source:
+id: None
+name: Phys.Org
+
+author: b'Geological Society of America'
+title: b'Channel conveyance and flood risk: Are current models missing the mark?'
+description: b'River floods are environmental hazards that can have devastating effects on human life, agriculture, and infrastructure. Hydrologic models are used to map flood hazards to better understand risk, dictate insurance costs, and inform land-use planning. However,\xe2\x80\xa6'
+url: b'https://phys.org/news/2024-09-channel-conveyance-current.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/hires/2021/flood-1.jpg'
+publishedAt: b'2024-09-24T19:08:03Z'
+content: b'River floods are environmental hazards that can have devastating effects on human life, agriculture, and infrastructure. Hydrologic models are used to map flood hazards to better understand risk, dic\xe2\x80\xa6 [+2896 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 74
+
+source:
+id: None
+name: Phys.Org
+
+author: b'Science X'
+title: b'Farming at the edges of nature reserves is helping exotic species invade New Zealand, finds study'
+description: b'Native shrublands were once common across the Canterbury Plains, but over time, conversion of land to other uses, including irrigated pasture, has contributed to their gradual decline. Now, a new study by scientists at Manaaki Whenua\xe2\x80\x94Landcare Research has fou\xe2\x80\xa6'
+url: b'https://phys.org/news/2024-09-farming-edges-nature-reserves-exotic.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/2024/farming-at-the-edges-o.jpg'
+publishedAt: b'2024-09-09T17:33:54Z'
+content: b'Native shrublands were once common across the Canterbury Plains, but over time, conversion of land to other uses, including irrigated pasture, has contributed to their gradual decline. Now, a new stu\xe2\x80\xa6 [+3717 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 75
+
+source:
+id: None
+name: NASA
+
+author: b'Jordan T. Pogorzelski'
+title: b'Pollinator Initiatives at NASA'
+description: b'Pollinators play a crucial role in both human agriculture and ecosystems \xe2\x80\x93 they support thousands of plant species and crops which feed humans and livestock. Unfortunately, habitat loss, disease, and pesticides contribute to the decline in pollinator biodiver\xe2\x80\xa6'
+url: b'https://www.nasa.gov/organizations/osi/emd/pollinator-initiatives-at-nasa/'
+urlToImage: b'https://www.nasa.gov/wp-content/uploads/2024/08/jsc-prairie-roof-03.png'
+publishedAt: b'2024-09-03T15:19:26Z'
+content: b'Pollinators play a crucial role in both human agriculture and ecosystems by supporting thousands of plant species and crops which feed humans and livestock. Unfortunately, habitat loss, disease, and \xe2\x80\xa6 [+5985 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 76
+
+source:
+id: None
+name: New Atlas
+
+author: b'Ben Coxworth'
+title: b'Forest-floor mirrors give shaded seedlings a 175% growth-boost'
+description: b'Many indoor plant enthusiasts already know that mirrors can be used to direct more sunlight onto plants that need it. Scientists have now developed a method of applying that same principle to endangered tree seedlings that are struggling to grow in shady fore\xe2\x80\xa6'
+url: b'https://newatlas.com/science/forest-floor-mirrors-seedling-growth/'
+urlToImage: b'https://assets.newatlas.com/dims4/default/b28102a/2147483647/strip/true/crop/1110x583+0+79/resize/1200x630!/quality/90/?url=http%3A%2F%2Fnewatlas-brightspot.s3.amazonaws.com%2F9a%2F88%2F9f902b754b4e9375e1e77ce293a2%2Fscreenshot-2024-09-19-at-11.20.18%E2%80%AFAM.jpeg&na.image_optimisation=0'
+publishedAt: b'2024-09-19T17:50:05Z'
+content: b'Many indoor plant enthusiasts already know that mirrors can be used to direct more sunlight onto plants that need it. Scientists have now developed a method of applying that same principle to endange\xe2\x80\xa6 [+3171 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 77
+
+source:
+id: None
+name: Scientific American
+
+author: b'Nathan Donley, Kyla Bennett'
+title: b'PFAS in Pesticides Could Pose a Greater Multigenerational Threat Than DDT'
+description: b'A looming and poorly regulated PFAS threat comes from these chemicals\xe2\x80\x99 common use in pesticides on farms nationwide'
+url: b'https://www.scientificamerican.com/article/pfas-in-pesticides-could-pose-a-greater-multigenerational-threat-than-ddt/'
+urlToImage: b'https://static.scientificamerican.com/dam/m/77e9d9f6801177b2/original/SA_Farm-Workers-Spray-Pesticides.jpg?w=1200'
+publishedAt: b'2024-09-11T11:00:00Z'
+content: b'When the U.S. Environmental Protection Agency ended most uses of the notorious pesticide DDT back in 1972, it wasn\xe2\x80\x99t just because of the poison\xe2\x80\x99s then suspected links to cancer and serious reproducti\xe2\x80\xa6 [+6368 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 78
+
+source:
+id: None
+name: New Atlas
+
+author: b'Ben Coxworth'
+title: b'Clay reduces methane in cow burps by 30%'
+description: b"In case you haven't heard, the methane in cow burps is a major source of greenhouse gases. There may be a new way of addressing that problem, however, as a recent study shows that feeding cows clay reduces their methane emissions by over 30%.Continue ReadingC\xe2\x80\xa6"
+url: b'https://newatlas.com/environment/cow-burps-methane-clay/'
+urlToImage: b'https://assets.newatlas.com/dims4/default/e0b3907/2147483647/strip/true/crop/5687x2986+0+538/resize/1200x630!/quality/90/?url=http%3A%2F%2Fnewatlas-brightspot.s3.amazonaws.com%2Fa9%2F6a%2F74e269db45a681bf929577e1cd8c%2Fdepositphotos-463844604-xl.jpg&na.image_optimisation=0'
+publishedAt: b'2024-09-19T00:24:57Z'
+content: b"In case you haven't heard, the methane in cow burps is a major source of greenhouse gases. There may be a new way of addressing that problem, however, as a recent study shows that feeding cows clay r\xe2\x80\xa6 [+1669 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 79
+
+source:
+id: None
+name: Biztoc.com
+
+author: b'asia.nikkei.com'
+title: b'Japan should lead way in promoting eco-friendly agriculture in Asia'
+description: b'Japan has begun sharing its know-how on curbing greenhouse gas emissions from rice cultivation with the rest of Asia. This initiative should serve as the first step in a broader Japanese push to promote environment-friendly agriculture across the region.\nMeth\xe2\x80\xa6'
+url: b'https://biztoc.com/x/42c111325297e790'
+urlToImage: b'https://biztoc.com/cdn/42c111325297e790_s.webp'
+publishedAt: b'2024-09-18T04:02:45Z'
+content: b'Japan has begun sharing its know-how on curbing greenhouse gas emissions from rice cultivation with the rest of Asia. This initiative should serve as the first step in a broader Japanese push to prom\xe2\x80\xa6 [+139 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 80
+
+source:
+id: None
+name: Biztoc.com
+
+author: b'theglobeandmail.com'
+title: b'Agriculture groups urge White House action ahead of possible ports strike'
+description: b'Nearly 200 agriculture organizations on Friday morning urged the White House to address key U.S. agricultural supply chain issues in the face of a potential East and Gulf Coast port strike that could begin on Tuesday.\nThe groups said the industry is facing \xe2\x80\x9ci\xe2\x80\xa6'
+url: b'https://biztoc.com/x/14fabf244456fab6'
+urlToImage: b'https://biztoc.com/cdn/14fabf244456fab6_s.webp'
+publishedAt: b'2024-09-27T13:28:03Z'
+content: b'Nearly 200 agriculture organizations on Friday morning urged the White House to address key U.S. agricultural supply chain issues in the face of a potential East and Gulf Coast port strike that could\xe2\x80\xa6 [+141 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 81
+
+source:
+id: None
+name: Noemamag.com
+
+
+title: b'The Powerful Potential of Tiny Conservation Plots'
+description: b'Making space for environmental conservation in our densest concrete jungles.'
+url: b'https://www.noemamag.com/the-powerful-potential-of-tiny-conservation-plots'
+urlToImage: b'https://noemamag.imgix.net/2024/08/MorganLevy_IGP3678-Edit-scaled.jpg?fit=crop&fm=pjpg&h=628&ixlib=php-3.3.1&w=1200&wpsize=noema-social-facebook&s=67dbf73a269b84c6cca4d0579b1d16bd'
+publishedAt: b'2024-09-02T13:02:38Z'
+content: b'For a few seconds, its like a scene from a movie: A gentle breeze rustles rows of garlic and carrot plants, tickling my shins. Early summer sun streams through the canopy overhead, leaves throw shade\xe2\x80\xa6 [+18607 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 82
+
+source:
+id: None
+name: CleanTechnica
+
+author: b'Carolyn Fortuna'
+title: b'The Sustainable Agriculture Fair Of The Future'
+description: b'As the summer wound down, I immersed myself in a local cultural tradition: the local agriculture fair, a harvest tradition in New England that dates back over a century. With it are competitions for the best examples of cows, pigs, sheep, ducks, and horses, w\xe2\x80\xa6'
+url: b'https://cleantechnica.com/2024/09/25/the-sustainable-agriculture-fair-of-the-future/'
+urlToImage: b'https://cleantechnica.com/wp-content/uploads/2024/09/vegetable-art-at-Woodstock-Fair.jpg'
+publishedAt: b'2024-09-25T12:43:07Z'
+content: b'Sign up for daily news updates from CleanTechnica on email. Or follow us on Google News!\r\nAs the summer wound down, I immersed myself in a local cultural tradition: the local agriculture fair, a harv\xe2\x80\xa6 [+8504 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 83
+
+source:
+id: None
+name: Phys.Org
+
+author: b'Science X'
+title: b'The 15 top methane-emitting nations lack policies to rein them in'
+description: b'While the United States and China have taken important steps to reduce their methane emissions, other significant producers of the potent greenhouse gas rarely have concrete national plans to mitigate it, according to a new University of Maryland analysis.'
+url: b'https://phys.org/news/2024-09-methane-emitting-nations-lack-policies.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/hires/2024/15-top-methane-emittin.jpg'
+publishedAt: b'2024-09-04T18:37:22Z'
+content: b'While the United States and China have taken important steps to reduce their methane emissions, other significant producers of the potent greenhouse gas rarely have concrete national plans to mitigat\xe2\x80\xa6 [+4072 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 84
+
+source:
+id: None
+name: Science Daily
+
+
+title: b'Shining light on how solar power and farming can coexist'
+description: b'Scientists have developed a new tool to help identify optimal photovoltaic (PV) materials capable of maximizing crop growth while generating solar power.'
+url: b'https://www.sciencedaily.com/releases/2024/09/240906141606.htm'
+urlToImage: b'https://www.sciencedaily.com/images/scidaily-icon.png'
+publishedAt: b'2024-09-06T18:16:06Z'
+content: b'Scientists from Swansea University have developed a new tool to help identify optimal photovoltaic (PV) materials capable of maximising crop growth while generating solar power.In a recent study publ\xe2\x80\xa6 [+2276 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 85
+
+source:
+id: None
+name: Phys.Org
+
+author: b'Science X'
+title: b'With the right plants, wetlands can recover, says researcher'
+description: b'Wetlands, such as bogs and marshes, have largely disappeared in the Netherlands. With humidification and the growth of the right plants, wetlands can be restored. This is evident from research by Renske Vroom, who will receive her doctorate on this subject at\xe2\x80\xa6'
+url: b'https://phys.org/news/2024-09-wetlands-recover.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/hires/2021/peat.jpg'
+publishedAt: b'2024-09-09T20:22:02Z'
+content: b'Wetlands, such as bogs and marshes, have largely disappeared in the Netherlands. With humidification and the growth of the right plants, wetlands can be restored. This is evident from research by Ren\xe2\x80\xa6 [+2925 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 86
+
+source:
+id: None
+name: Phys.Org
+
+author: b'Susanne Rust, Los Angeles Times'
+title: b'Concern grows as bird flu outbreaks continue to rise among California dairy herds'
+description: b"Reports of H5N1 bird flu outbreaks at California dairy herds are continuing to rise as the nation's largest milk producer scrambles to contain the spread."
+url: b'https://phys.org/news/2024-09-bird-flu-outbreaks-california-dairy.html'
+urlToImage: b'https://scx2.b-cdn.net/gfx/news/hires/2023/dairy-cows.jpg'
+publishedAt: b'2024-09-25T13:40:02Z'
+content: b"Reports of H5N1 bird flu outbreaks at California dairy herds are continuing to rise as the nation's largest milk producer scrambles to contain the spread.\r\nOn Monday, officials reported that the numb\xe2\x80\xa6 [+3425 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 87
+
+source:
+id: None
+name: NPR
+
+author: b'Scott Neuman'
+title: b'Is getting food delivered worse for the climate? Sometimes it\xe2\x80\x99s better'
+description: b'From meal kits to grocery service to restaurant delivery, we look at the carbon footprint of convenient food and the choices people can make to try to reduce it. Sometimes there are trade-offs.'
+url: b'https://www.npr.org/2024/09/10/nx-s1-5020321/food-delivery-meal-kits-carbon-footprint'
+urlToImage: b'https://npr.brightspotcdn.com/dims3/default/strip/false/crop/3000x1688+0+156/resize/1400/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2Fe6%2F00%2F8fb1516747229596730ad31f8b9c%2Fgettyimages-1231964357.jpg'
+publishedAt: b'2024-09-11T10:00:00Z'
+content: b'Climate change is affecting our food, and our food is affecting the climate.\xc2\xa0NPR is dedicating a week to stories and conversations about the search for solutions.\r\nTheres a whiteboard on the refriger\xe2\x80\xa6 [+9038 chars]'
+----------------------------------------------------------------------------------------------------
+Section: 88
+
+source:
+id: business-insider
+name: Business Insider
+
+author: b'Mykenna Maniece'
+title: b'The 10 unhappiest states in the US, ranked'
+description: b'Louisiana is the unhappiest state in the country, according to a report by WalletHub. See which other states received the lowest happiness rankings.'
+url: b'https://www.businessinsider.com/unhappiest-states-to-live-in-ranked-2024-9'
+urlToImage: b'https://i.insider.com/66e3099ed17aa3c7b2b1f7b6?width=1200&format=jpeg'
+publishedAt: b'2024-09-19T15:55:58Z'
+content: b"Alaska's lowest ranking was for workplace environment.Ramunas Bruzas/Shutterstock\r\n
- WalletHub released its ranking of the happiest states in the US.
- The study compared the 50 states us\xe2\x80\xa6 [+10807 chars]"
+----------------------------------------------------------------------------------------------------
+Section: 89
+
+source:
+id: business-insider
+name: Business Insider
+
+author: b'Shubhangi Goel,Charissa Cheong'
+title: b'Some techies are leaving cushy Silicon Valley jobs to launch startups at home in India'
+description: b'Many leave cushy Big Tech salaries because they no longer want to watch the booming entrepreneurship scene from the sidelines.'
+url: b'https://www.businessinsider.com/indians-leaving-big-tech-to-launch-startups-back-home-2024-9'
+urlToImage: b'https://i.insider.com/66e3e261cfb7f307e571460a?width=1200&format=jpeg'
+publishedAt: b'2024-10-01T00:00:02Z'
+content: b'Expat Indians are leaving Big Tech and moving back home to launch companies of their own.Chelsea Jia Feng, BI\r\n
- Some expat Indians are moving back home to launch companies of their own.
argparse.Namespace:
"""Parse command-line arguments for the program.
@@ -129,4 +130,7 @@ def parse_args() -> argparse.Namespace:
proxy_prefix = os.environ.get("PROXY_PREFIX")
blocks = pages.converse.build_page(client)
blocks.queue(max_size=10)
+
+ rda.main() #May slow down the program when running especially at the start, pulls data from the api links and updates their storage
+
blocks.launch(server_name="0.0.0.0", server_port=8080, root_path=proxy_prefix)
\ No newline at end of file
diff --git a/code/chatui/assets/kaizen-theme.css b/code/chatui/assets/kaizen-theme.css
index 04e9304..85dc8b8 100644
--- a/code/chatui/assets/kaizen-theme.css
+++ b/code/chatui/assets/kaizen-theme.css
@@ -1,5 +1,7 @@
-.tabitem {
+.tabitem, .tab, .tab-container {
background-color: var(--block-background-fill);
+ align-items: center;
+ justify-content: center;
}
.gradio-container {
diff --git a/code/chatui/pages/__init__.py b/code/chatui/pages/__init__.py
index eb30849..8622c26 100644
--- a/code/chatui/pages/__init__.py
+++ b/code/chatui/pages/__init__.py
@@ -16,4 +16,4 @@
"""This module contains definitions for all the chatui pages."""
from chatui.pages import converse, kb
-__all__ = ["converse", "kb"]
+__all__ = ["converse", "kb"]
\ No newline at end of file
diff --git a/code/chatui/pages/converse.py b/code/chatui/pages/converse.py
index c8b30b8..5789691 100644
--- a/code/chatui/pages/converse.py
+++ b/code/chatui/pages/converse.py
@@ -34,9 +34,13 @@
from chatui.pages import info
from chatui.pages import utils
+#added modules
+import numpy as np
+from PIL import Image
+
_LOGGER = logging.getLogger(__name__)
PATH = "/"
-TITLE = "Hybrid RAG: Chat UI"
+TITLE = "AI-griculture JM"
OUTPUT_TOKENS = 250
MAX_DOCS = 5
@@ -71,15 +75,41 @@
#rag-inputs .svelte-1gfkn6j {
color: #76b900;
}
+
+/*Added Styling*/
+h1, h2 {
+ text-align: center;
+}
"""
+#HTML STRINGS
+farming_tab_html = f"""
+ {TITLE} provides accessible and tailored advice for optimizing crop yields, thus applying better calculated strategies for handling the effects of climate change, enhancing Jamaica’s food security
+ """
+
+researching_tab_html = f"""
+ {TITLE} enables easy retrieval of information across vast documents for faster research and knowledge-sharing.
+ """
+
+policymaking_tab_html = f"""
+ {TITLE} offers data-driven insights to develop more effective agricultural policies and strategies for sustainability.
+ """
+
+# Image files
+farmer_ant_image_path, doctor_ant_image_path, anime_ant_image_path = 'media/farmer-ant.jpeg', 'media/doctor-ant.jpeg', 'media/anime-ant.jpeg'
+farmer_ant_image, doctor_ant_image, anime_ant_image = Image.open(farmer_ant_image_path), Image.open(doctor_ant_image_path), Image.open(anime_ant_image_path)
+
+# Converts image files to numpy arrays
+farmer_ant_image_array, doctor_ant_image_array, anime_ant_image_array = np.array(farmer_ant_image), np.array(doctor_ant_image), np.array(anime_ant_image)
+
+
def build_page(client: chat_client.ChatClient) -> gr.Blocks:
"""
Build the gradio page to be mounted in the frame.
-
- Parameters:
- client (chat_client.ChatClient): The chat client running the application.
-
+
+ Parameters:
+ client (chat_client.ChatClient): The chat client running the application.
+
Returns:
page (gr.Blocks): A Gradio page.
"""
@@ -87,7 +117,38 @@ def build_page(client: chat_client.ChatClient) -> gr.Blocks:
with gr.Blocks(title=TITLE, theme=kui_theme, css=kui_styles + _LOCAL_CSS) as page:
# create the page header
- gr.Markdown(f"# {TITLE}")
+ gr.Markdown(f"""
+ {TITLE}
+ Derive insights on environmental, climatic and agriculural factors and strategies to assist in the following
+ """)
+
+ tab_image_height, tab_image_width = 200, 200 #set dimensions for tab images
+
+ with gr.Tab("Farmers"): #agriculture tab
+ with gr.Row():
+ with gr.Column(scale=1):
+ gr.Image(farmer_ant_image_array, height=tab_image_height, width=tab_image_width, show_label=False,
+ show_fullscreen_button=False, show_download_button=False)
+
+ with gr.Column(scale=6):
+ gr.HTML(farming_tab_html)
+
+ with gr.Tab("Researching"): #researching tab
+ with gr.Row():
+ with gr.Column(scale=1):
+ gr.Image(doctor_ant_image_array, height=tab_image_height, width=tab_image_width, show_label=False,
+ show_fullscreen_button=False, show_download_button=False)
+
+ with gr.Column(scale=6):
+ gr.HTML(researching_tab_html)
+
+ with gr.Tab("Policymaking"): #policymaking tab
+ with gr.Row():
+ with gr.Column(scale=1):
+ gr.Image(anime_ant_image_array, height=tab_image_height, width=tab_image_width, show_label=False,
+ show_fullscreen_button=False, show_download_button=False)
+ with gr.Column(scale=6):
+ gr.HTML(policymaking_tab_html)
# Keep track of state we want to persist across user actions
which_nim_tab = gr.State(0)
@@ -101,19 +162,18 @@ def build_page(client: chat_client.ChatClient) -> gr.Blocks:
# Left Column will display the chatbot
with gr.Column(scale=15, min_width=350):
-
# Main chatbot panel. Context and Metrics are hidden until toggled
with gr.Row(equal_height=True):
with gr.Column(scale=2, min_width=350):
chatbot = gr.Chatbot(show_label=False)
-
+
context = gr.JSON(
scale=1,
label="Retrieved Context",
visible=False,
elem_id="contextbox",
)
-
+
metrics = gr.JSON(
scale=1,
label="Metrics",
@@ -128,33 +188,34 @@ def build_page(client: chat_client.ChatClient) -> gr.Blocks:
elem_id="contextbox",
)
- # Render the output sliders to customize the generation output.
+ # Render the output sliders to customize the generation output.
with gr.Tabs(selected=0, visible=False) as out_tabs:
with gr.TabItem("Max Tokens in Response", id=0) as max_tokens_in_response:
- num_token_slider = gr.Slider(0, utils.preset_max_tokens()[1], value=utils.preset_max_tokens()[0],
- label=info.num_token_label,
+ num_token_slider = gr.Slider(0, utils.preset_max_tokens()[1],
+ value=utils.preset_max_tokens()[0],
+ label=info.num_token_label,
interactive=True)
-
+
with gr.TabItem("Temperature", id=1) as temperature:
- temp_slider = gr.Slider(0, 1, value=0.7,
- label=info.temp_label,
+ temp_slider = gr.Slider(0, 1, value=0.7,
+ label=info.temp_label,
interactive=True)
-
+
with gr.TabItem("Top P", id=2) as top_p:
- top_p_slider = gr.Slider(0.001, 0.999, value=0.999,
- label=info.top_p_label,
+ top_p_slider = gr.Slider(0.001, 0.999, value=0.999,
+ label=info.top_p_label,
interactive=True)
-
+
with gr.TabItem("Frequency Penalty", id=3) as freq_pen:
- freq_pen_slider = gr.Slider(-2, 2, value=0,
- label=info.freq_pen_label,
+ freq_pen_slider = gr.Slider(-2, 2, value=0,
+ label=info.freq_pen_label,
interactive=True)
-
+
with gr.TabItem("Presence Penalty", id=4) as pres_pen:
- pres_pen_slider = gr.Slider(-2, 2, value=0,
- label=info.pres_pen_label,
+ pres_pen_slider = gr.Slider(-2, 2, value=0,
+ label=info.pres_pen_label,
interactive=True)
-
+
with gr.TabItem("Hide Output Tools", id=5) as hide_out_tools:
gr.Markdown("")
@@ -173,7 +234,8 @@ def build_page(client: chat_client.ChatClient) -> gr.Blocks:
)
with gr.Column(scale=1, min_width=100):
kb_checkbox = gr.CheckboxGroup(
- ["Toggle to use Vector Database"], label="Vector Database", info="Supply your uploaded documents to the chatbot"
+ ["Toggle to use Vector Database"], label="Vector Database",
+ info="Supply your uploaded documents to the chatbot"
)
# Render the row of buttons: submit query, clear history, show metrics and contexts
@@ -188,7 +250,6 @@ def build_page(client: chat_client.ChatClient) -> gr.Blocks:
# Right Column will display the inference and database settings
with gr.Column(scale=10, min_width=450, visible=True) as settings_column:
with gr.Tabs(selected=0) as settings_tabs:
-
# First tab item is a button to start the RAG backend and unlock other settings
with gr.TabItem("Initial Setup", id=0, interactive=False, visible=True) as setup_settings:
gr.Markdown("
")
@@ -198,14 +259,13 @@ def build_page(client: chat_client.ChatClient) -> gr.Blocks:
# Second tab item consists of all the inference mode settings
with gr.TabItem("Inference Settings", id=1, interactive=False, visible=True) as inf_settings:
- inference_mode = gr.Radio(["Local System", "Cloud Endpoint", "Self-Hosted Microservice"],
- label="Inference Mode",
- info=info.inf_mode_info,
+ inference_mode = gr.Radio(["Local System", "Cloud Endpoint", "Self-Hosted Microservice"],
+ label="Inference Mode",
+ info=info.inf_mode_info,
value="Cloud Endpoint")
-
+
# Depending on the selected inference mode, different settings need to get exposed to the user.
with gr.Tabs(selected=1) as tabs:
-
# Inference settings for local TGI inference server
with gr.TabItem("Local System", id=0, interactive=False, visible=False) as local:
with gr.Accordion("Prerequisites", open=True, elem_id="accordion"):
@@ -216,27 +276,27 @@ def build_page(client: chat_client.ChatClient) -> gr.Blocks:
gr.Markdown(info.local_trouble)
gate_checkbox = gr.CheckboxGroup(
- ["Ungated Models", "Gated Models"],
- value=["Ungated Models"],
- label="Select which models types to show",
- interactive = True,
+ ["Ungated Models", "Gated Models"],
+ value=["Ungated Models"],
+ label="Select which models types to show",
+ interactive=True,
elem_id="rag-inputs")
-
- local_model_id = gr.Dropdown(choices = ["nvidia/Llama3-ChatQA-1.5-8B",
- "microsoft/Phi-3-mini-128k-instruct"],
- value = "nvidia/Llama3-ChatQA-1.5-8B",
- interactive = True,
- label = "Select a model (or input your own).",
- allow_custom_value = True,
+
+ local_model_id = gr.Dropdown(choices=["nvidia/Llama3-ChatQA-1.5-8B",
+ "microsoft/Phi-3-mini-128k-instruct"],
+ value="nvidia/Llama3-ChatQA-1.5-8B",
+ interactive=True,
+ label="Select a model (or input your own).",
+ allow_custom_value=True,
elem_id="rag-inputs")
- local_model_quantize = gr.Dropdown(choices = ["None",
- "8-Bit",
- "4-Bit"],
- value = utils.preset_quantization(),
- interactive = True,
- label = "Select model quantization.",
+ local_model_quantize = gr.Dropdown(choices=["None",
+ "8-Bit",
+ "4-Bit"],
+ value=utils.preset_quantization(),
+ interactive=True,
+ label="Select model quantization.",
elem_id="rag-inputs")
-
+
with gr.Row(equal_height=True):
download_model = gr.Button(value="Load Model", size="sm")
start_local_server = gr.Button(value="Start Server", interactive=False, size="sm")
@@ -250,81 +310,85 @@ def build_page(client: chat_client.ChatClient) -> gr.Blocks:
gr.Markdown(info.cloud_info)
with gr.Accordion("Troubleshooting", open=False, elem_id="accordion"):
gr.Markdown(info.cloud_trouble)
-
- nvcf_model_family = gr.Dropdown(choices = ["Select",
- "NVIDIA",
- "MistralAI",
- "Meta",
- "Google",
- "Microsoft",
- "Snowflake",
- "IBM",
- "Upstage",
- "AI21 Labs"],
- value = "Select",
- interactive = True,
- label = "Select a model family.",
+
+ nvcf_model_family = gr.Dropdown(choices=["Select",
+ "NVIDIA",
+ "MistralAI",
+ "Meta",
+ "Google",
+ "Microsoft",
+ "Snowflake",
+ "IBM",
+ "Upstage",
+ "AI21 Labs"],
+ value="Select",
+ interactive=True,
+ label="Select a model family.",
elem_id="rag-inputs")
- nvcf_model_id = gr.Dropdown(choices = ["Select"],
- value = "Select",
- interactive = True,
- label = "Select a model.",
- visible = False,
+ nvcf_model_id = gr.Dropdown(choices=["Select"],
+ value="Select",
+ interactive=True,
+ label="Select a model.",
+ visible=False,
elem_id="rag-inputs")
# Inference settings for self-hosted microservice inference mode
- with gr.TabItem("Self-Hosted Microservice", id=2, interactive=False, visible=False) as microservice:
+ with gr.TabItem("Self-Hosted Microservice", id=2, interactive=False,
+ visible=False) as microservice:
with gr.Accordion("Prerequisites", open=True, elem_id="accordion"):
gr.Markdown(info.nim_prereqs)
with gr.Accordion("Instructions", open=False, elem_id="accordion"):
gr.Markdown(info.nim_info)
with gr.Accordion("Troubleshooting", open=False, elem_id="accordion"):
gr.Markdown(info.nim_trouble)
-
+
# User can run a microservice remotely via an endpoint, or as a local inference server.
with gr.Tabs(selected=0) as nim_tabs:
-
# Inference settings for remotely-running microservice
with gr.TabItem("Remote", id=0) as remote_microservice:
- remote_nim_msg = gr.Markdown("
Enter the details below. Then start chatting!")
-
+ remote_nim_msg = gr.Markdown(
+ "
Enter the details below. Then start chatting!")
+
with gr.Row(equal_height=True):
- nim_model_ip = gr.Textbox(placeholder = "10.123.45.678",
- label = "Microservice Host",
- info = "IP Address running the microservice",
- elem_id="rag-inputs", scale=2)
- nim_model_port = gr.Textbox(placeholder = "8000",
- label = "Port",
- info = "Optional, (default: 8000)",
- elem_id="rag-inputs", scale=1)
-
- nim_model_id = gr.Textbox(placeholder = "meta/llama3-8b-instruct",
- label = "Model running in microservice.",
- info = "If none specified, defaults to: meta/llama3-8b-instruct",
- elem_id="rag-inputs")
+ nim_model_ip = gr.Textbox(placeholder="10.123.45.678",
+ label="Microservice Host",
+ info="IP Address running the microservice",
+ elem_id="rag-inputs", scale=2)
+ nim_model_port = gr.Textbox(placeholder="8000",
+ label="Port",
+ info="Optional, (default: 8000)",
+ elem_id="rag-inputs", scale=1)
+
+ nim_model_id = gr.Textbox(placeholder="meta/llama3-8b-instruct",
+ label="Model running in microservice.",
+ info="If none specified, defaults to: meta/llama3-8b-instruct",
+ elem_id="rag-inputs")
# Inference settings for locally-running microservice
with gr.TabItem("Local", id=1) as local_microservice:
- gr.Markdown("
**Important**: For AI Workbench on DOCKER users only. Podman is unsupported!")
-
- nim_local_model_id = gr.Textbox(placeholder = "nvcr.io/nim/meta/llama3-8b-instruct:latest",
- label = "NIM Container Image",
- elem_id="rag-inputs")
-
+ gr.Markdown(
+ "
**Important**: For AI Workbench on DOCKER users only. Podman is unsupported!")
+
+ nim_local_model_id = gr.Textbox(
+ placeholder="nvcr.io/nim/meta/llama3-8b-instruct:latest",
+ label="NIM Container Image",
+ elem_id="rag-inputs")
+
with gr.Row(equal_height=True):
prefetch_nim = gr.Button(value="Prefetch NIM", size="sm")
- start_local_nim = gr.Button(value="Start Microservice",
- interactive=(True if os.path.isdir('/mnt/host-home/model-store') else False),
+ start_local_nim = gr.Button(value="Start Microservice",
+ interactive=(True if os.path.isdir(
+ '/mnt/host-home/model-store') else False),
size="sm")
- stop_local_nim = gr.Button(value="Stop Microservice", interactive=False, size="sm")
+ stop_local_nim = gr.Button(value="Stop Microservice", interactive=False,
+ size="sm")
# Third tab item consists of database and document upload settings
with gr.TabItem("Upload Documents Here", id=2, interactive=False, visible=True) as vdb_settings:
-
gr.Markdown(info.update_kb_info)
-
- file_output = gr.File(interactive=True,
- show_label=False,
+
+ file_output = gr.File(interactive=True,
+ show_label=False,
file_types=["text",
".pdf",
".html",
@@ -333,15 +397,15 @@ def build_page(client: chat_client.ChatClient) -> gr.Blocks:
".txt",
".odt",
".rtf",
- ".tex"],
+ ".tex"],
file_count="multiple")
-
+
with gr.Row():
doc_show = gr.Button(value="Show Documents", size="sm")
doc_hide = gr.Button(value="Hide Documents", visible=False, size="sm")
- clear_docs = gr.Button(value="Clear Database", interactive=False, size="sm")
+ clear_docs = gr.Button(value="Clear Database", interactive=False, size="sm")
- # Final tab item consists of option to collapse the settings to reduce clutter on the UI
+ # Final tab item consists of option to collapse the settings to reduce clutter on the UI
with gr.TabItem("Hide All Settings", id=3, visible=False) as hide_all_settings:
gr.Markdown("")
@@ -364,8 +428,8 @@ def _toggle_gated(models: List[str]) -> Dict[gr.component, Dict[Any, Any]]:
"meta-llama/Llama-2-7b-chat-hf",
"meta-llama/Meta-Llama-3-8B-Instruct"]
selected = "mistralai/Mistral-7B-Instruct-v0.1"
- else:
- choices = ["nvidia/Llama3-ChatQA-1.5-8B",
+ else:
+ choices = ["nvidia/Llama3-ChatQA-1.5-8B",
"microsoft/Phi-3-mini-128k-instruct",
"mistralai/Mistral-7B-Instruct-v0.1",
"mistralai/Mistral-7B-Instruct-v0.2",
@@ -377,7 +441,7 @@ def _toggle_gated(models: List[str]) -> Dict[gr.component, Dict[Any, Any]]:
}
gate_checkbox.change(_toggle_gated, [gate_checkbox], [local_model_id])
-
+
def _toggle_info(btn: str) -> Dict[gr.component, Dict[Any, Any]]:
"""" Event listener to toggle context and/or metrics panes visible to the user. """
if btn == "Show Context":
@@ -404,12 +468,18 @@ def _toggle_info(btn: str) -> Dict[gr.component, Dict[Any, Any]]:
doc_hide: gr.update(visible=out[8]),
}
- ctx_show.click(_toggle_info, [ctx_show], [context, metrics, docs, ctx_show, ctx_hide, mtx_show, mtx_hide, doc_show, doc_hide])
- ctx_hide.click(_toggle_info, [ctx_hide], [context, metrics, docs, ctx_show, ctx_hide, mtx_show, mtx_hide, doc_show, doc_hide])
- mtx_show.click(_toggle_info, [mtx_show], [context, metrics, docs, ctx_show, ctx_hide, mtx_show, mtx_hide, doc_show, doc_hide])
- mtx_hide.click(_toggle_info, [mtx_hide], [context, metrics, docs, ctx_show, ctx_hide, mtx_show, mtx_hide, doc_show, doc_hide])
- doc_show.click(_toggle_info, [doc_show], [context, metrics, docs, ctx_show, ctx_hide, mtx_show, mtx_hide, doc_show, doc_hide])
- doc_hide.click(_toggle_info, [doc_hide], [context, metrics, docs, ctx_show, ctx_hide, mtx_show, mtx_hide, doc_show, doc_hide])
+ ctx_show.click(_toggle_info, [ctx_show],
+ [context, metrics, docs, ctx_show, ctx_hide, mtx_show, mtx_hide, doc_show, doc_hide])
+ ctx_hide.click(_toggle_info, [ctx_hide],
+ [context, metrics, docs, ctx_show, ctx_hide, mtx_show, mtx_hide, doc_show, doc_hide])
+ mtx_show.click(_toggle_info, [mtx_show],
+ [context, metrics, docs, ctx_show, ctx_hide, mtx_show, mtx_hide, doc_show, doc_hide])
+ mtx_hide.click(_toggle_info, [mtx_hide],
+ [context, metrics, docs, ctx_show, ctx_hide, mtx_show, mtx_hide, doc_show, doc_hide])
+ doc_show.click(_toggle_info, [doc_show],
+ [context, metrics, docs, ctx_show, ctx_hide, mtx_show, mtx_hide, doc_show, doc_hide])
+ doc_hide.click(_toggle_info, [doc_hide],
+ [context, metrics, docs, ctx_show, ctx_hide, mtx_show, mtx_hide, doc_show, doc_hide])
def _toggle_hide_out_tools() -> Dict[gr.component, Dict[Any, Any]]:
""" Event listener to hide output toolbar from the user. """
@@ -448,16 +518,18 @@ def _toggle_show_all_settings() -> Dict[gr.component, Dict[Any, Any]]:
show_settings.click(_toggle_show_all_settings, None, [settings_column, settings_tabs, hidden_settings_column])
- def _toggle_model_download(btn: str, model: str, start: str, stop: str, progress=gr.Progress()) -> Dict[gr.component, Dict[Any, Any]]:
+ def _toggle_model_download(btn: str, model: str, start: str, stop: str, progress=gr.Progress()) -> Dict[
+ gr.component, Dict[Any, Any]]:
""" Event listener to download model weights locally for Hugging Face TGI local inference. """
- if model != "nvidia/Llama3-ChatQA-1.5-8B" and model != "microsoft/Phi-3-mini-128k-instruct" and model != "" and os.environ.get('HUGGING_FACE_HUB_TOKEN') is None:
+ if model != "nvidia/Llama3-ChatQA-1.5-8B" and model != "microsoft/Phi-3-mini-128k-instruct" and model != "" and os.environ.get(
+ 'HUGGING_FACE_HUB_TOKEN') is None:
gr.Warning("You are accessing a gated model and HUGGING_FACE_HUB_TOKEN is not detected!")
return {
download_model: gr.update(),
start_local_server: gr.update(),
stop_local_server: gr.update(),
}
- else:
+ else:
if btn == "Load Model":
progress(0.25, desc="Initializing Task")
time.sleep(0.75)
@@ -469,7 +541,7 @@ def _toggle_model_download(btn: str, model: str, start: str, stop: str, progress
interactive = False
start_interactive = True if (start == "Start Server") else False
stop_interactive = True if (stop == "Stop Server") else False
- else:
+ else:
msg = "Error, Try Again"
colors = "stop"
interactive = True
@@ -482,25 +554,26 @@ def _toggle_model_download(btn: str, model: str, start: str, stop: str, progress
start_local_server: gr.update(interactive=start_interactive),
stop_local_server: gr.update(interactive=stop_interactive),
}
-
+
download_model.click(_toggle_model_download,
- [download_model, local_model_id, start_local_server, stop_local_server],
+ [download_model, local_model_id, start_local_server, stop_local_server],
[download_model, start_local_server, stop_local_server, msg])
def _toggle_model_select(model: str, start: str, stop: str) -> Dict[gr.component, Dict[Any, Any]]:
""" Event listener to select different models to use for Hugging Face TGI local inference. """
- if model != "nvidia/Llama3-ChatQA-1.5-8B" and model != "microsoft/Phi-3-mini-128k-instruct" and model != "" and os.environ.get('HUGGING_FACE_HUB_TOKEN') is None:
+ if model != "nvidia/Llama3-ChatQA-1.5-8B" and model != "microsoft/Phi-3-mini-128k-instruct" and model != "" and os.environ.get(
+ 'HUGGING_FACE_HUB_TOKEN') is None:
gr.Warning("You are accessing a gated model and HUGGING_FACE_HUB_TOKEN is not detected!")
return {
- download_model: gr.update(value="Load Model",
- variant="secondary",
+ download_model: gr.update(value="Load Model",
+ variant="secondary",
interactive=(False if start == "Server Started" else True)),
start_local_server: gr.update(interactive=False),
stop_local_server: gr.update(interactive=(False if stop == "Server Stopped" else True)),
}
-
+
local_model_id.change(_toggle_model_select,
- [local_model_id, start_local_server, stop_local_server],
+ [local_model_id, start_local_server, stop_local_server],
[download_model, start_local_server, stop_local_server])
def _toggle_nvcf_family(family: str) -> Dict[gr.component, Dict[Any, Any]]:
@@ -509,18 +582,18 @@ def _toggle_nvcf_family(family: str) -> Dict[gr.component, Dict[Any, Any]]:
submit_value = "Submit"
msg_value = "Enter text and press SUBMIT"
if family == "NVIDIA":
- choices = ["Llama3 ChatQA-1.5 8B",
- "Llama3 ChatQA-1.5 70B",
- "Nemotron Mini 4B",
- "Nemotron-4 340B Instruct",
+ choices = ["Llama3 ChatQA-1.5 8B",
+ "Llama3 ChatQA-1.5 70B",
+ "Nemotron Mini 4B",
+ "Nemotron-4 340B Instruct",
"Mistral-NeMo 12B Instruct"]
value = "Llama3 ChatQA-1.5 8B"
visible = True
elif family == "MistralAI":
- choices = ["Mistral 7B Instruct v0.2",
- "Mistral 7B Instruct v0.3",
- "Mistral Large",
- "Mixtral 8x7B Instruct v0.1",
+ choices = ["Mistral 7B Instruct v0.2",
+ "Mistral 7B Instruct v0.3",
+ "Mistral Large",
+ "Mixtral 8x7B Instruct v0.1",
"Mixtral 8x22B Instruct v0.1",
"Mistral-NeMo 12B Instruct",
"Mamba Codestral 7B v0.1",
@@ -528,11 +601,11 @@ def _toggle_nvcf_family(family: str) -> Dict[gr.component, Dict[Any, Any]]:
value = "Mistral 7B Instruct v0.2"
visible = True
elif family == "Meta":
- choices = ["Llama 2 70B",
- "Llama 3 8B",
- "Llama 3 70B",
- "Llama 3.1 8B",
- "Llama 3.1 70B",
+ choices = ["Llama 2 70B",
+ "Llama 3 8B",
+ "Llama 3 70B",
+ "Llama 3.1 8B",
+ "Llama 3.1 70B",
"Llama 3.1 405B"]
value = "Llama 2 70B"
visible = True
@@ -541,13 +614,13 @@ def _toggle_nvcf_family(family: str) -> Dict[gr.component, Dict[Any, Any]]:
value = "Gemma 2B"
visible = True
elif family == "Microsoft":
- choices = ["Phi-3 Mini (4k)",
- "Phi-3 Mini (128k)",
- "Phi-3 Small (8k)",
- "Phi-3 Small (128k)",
- "Phi-3 Medium (4k)",
- "Phi-3 Medium (128k)",
- "Phi-3.5 Mini Instruct",
+ choices = ["Phi-3 Mini (4k)",
+ "Phi-3 Mini (128k)",
+ "Phi-3 Small (8k)",
+ "Phi-3 Small (128k)",
+ "Phi-3 Medium (4k)",
+ "Phi-3 Medium (128k)",
+ "Phi-3.5 Mini Instruct",
"Phi-3.5 MoE Instruct"]
value = "Phi-3 Mini (4k)"
visible = True
@@ -567,7 +640,7 @@ def _toggle_nvcf_family(family: str) -> Dict[gr.component, Dict[Any, Any]]:
choices = ["Jamba-1.5 Mini Instruct", "Jamba-1.5 Large Instruct"]
value = "Jamba-1.5 Mini Instruct"
visible = True
- else:
+ else:
choices = ["Select"]
value = "Select"
visible = False
@@ -577,17 +650,19 @@ def _toggle_nvcf_family(family: str) -> Dict[gr.component, Dict[Any, Any]]:
return {
nvcf_model_id: gr.update(choices=choices, value=value, visible=visible),
submit_btn: gr.update(value=submit_value, interactive=interactive),
- msg: gr.update(interactive=True,
+ msg: gr.update(interactive=True,
placeholder=msg_value),
}
-
+
nvcf_model_family.change(_toggle_nvcf_family,
- [nvcf_model_family],
- [nvcf_model_id, submit_btn, msg])
+ [nvcf_model_family],
+ [nvcf_model_id, submit_btn, msg])
- def _toggle_local_server(btn: str, model: str, quantize: str, download: str, progress=gr.Progress()) -> Dict[gr.component, Dict[Any, Any]]:
+ def _toggle_local_server(btn: str, model: str, quantize: str, download: str, progress=gr.Progress()) -> Dict[
+ gr.component, Dict[Any, Any]]:
""" Event listener to run and/or shut down the Hugging Face TGI local inference server. """
- if model != "nvidia/Llama3-ChatQA-1.5-8B" and model != "microsoft/Phi-3-mini-128k-instruct" and model != "" and btn != "Stop Server" and os.environ.get('HUGGING_FACE_HUB_TOKEN') is None:
+ if model != "nvidia/Llama3-ChatQA-1.5-8B" and model != "microsoft/Phi-3-mini-128k-instruct" and model != "" and btn != "Stop Server" and os.environ.get(
+ 'HUGGING_FACE_HUB_TOKEN') is None:
gr.Warning("You are accessing a gated model and HUGGING_FACE_HUB_TOKEN is not detected!")
return {
start_local_server: gr.update(),
@@ -596,7 +671,7 @@ def _toggle_local_server(btn: str, model: str, quantize: str, download: str, pro
submit_btn: gr.update(),
download_model: gr.update(),
}
- else:
+ else:
if btn == "Start Server":
progress(0.2, desc="Initializing Task")
time.sleep(0.5)
@@ -604,14 +679,15 @@ def _toggle_local_server(btn: str, model: str, quantize: str, download: str, pro
rc = subprocess.call("/bin/bash /project/code/scripts/rag-consolidated.sh ", shell=True)
time.sleep(0.5)
progress(0.6, desc="Starting Inference Server (may take a few moments)")
- rc = subprocess.call("/bin/bash /project/code/scripts/start-local.sh "
- + model + " " + utils.quant_to_config(quantize), shell=True)
+ rc = subprocess.call("/bin/bash /project/code/scripts/start-local.sh "
+ + model + " " + utils.quant_to_config(quantize), shell=True)
if rc == 0:
out = ["Server Started", "Stop Server"]
colors = ["primary", "secondary"]
interactive = [False, True, True, False]
- else:
- gr.Warning("ERR: You may have timed out or are facing memory issues. In AI Workbench, check Output > Chat for details.")
+ else:
+ gr.Warning(
+ "ERR: You may have timed out or are facing memory issues. In AI Workbench, check Output > Chat for details.")
out = ["Internal Server Error, Try Again", "Stop Server"]
colors = ["stop", "secondary"]
interactive = [False, True, False, False]
@@ -625,8 +701,8 @@ def _toggle_local_server(btn: str, model: str, quantize: str, download: str, pro
if rc == 0:
out = ["Start Server", "Server Stopped"]
colors = ["secondary", "primary"]
- interactive = [True, False, False, False if (download=="Model Downloaded") else True]
- else:
+ interactive = [True, False, False, False if (download == "Model Downloaded") else True]
+ else:
out = ["Start Server", "Internal Server Error, Try Again"]
colors = ["secondary", "stop"]
interactive = [True, False, True, False]
@@ -635,34 +711,37 @@ def _toggle_local_server(btn: str, model: str, quantize: str, download: str, pro
return {
start_local_server: gr.update(value=out[0], variant=colors[0], interactive=interactive[0]),
stop_local_server: gr.update(value=out[1], variant=colors[1], interactive=interactive[1]),
- msg: gr.update(interactive=True,
- placeholder=("Enter text and press SUBMIT" if interactive[2] else "[NOT READY] Start the Local Inference Server OR Select a Different Inference Mode.")),
- submit_btn: gr.update(value="Submit" if interactive[2] else "[NOT READY] Submit", interactive=interactive[2]),
+ msg: gr.update(interactive=True,
+ placeholder=("Enter text and press SUBMIT" if interactive[
+ 2] else "[NOT READY] Start the Local Inference Server OR Select a Different Inference Mode.")),
+ submit_btn: gr.update(value="Submit" if interactive[2] else "[NOT READY] Submit",
+ interactive=interactive[2]),
download_model: gr.update(interactive=interactive[3]),
}
- start_local_server.click(_toggle_local_server,
- [start_local_server, local_model_id, local_model_quantize, download_model],
+ start_local_server.click(_toggle_local_server,
+ [start_local_server, local_model_id, local_model_quantize, download_model],
[start_local_server, stop_local_server, msg, submit_btn, download_model])
- stop_local_server.click(_toggle_local_server,
- [stop_local_server, local_model_id, local_model_quantize, download_model],
- [start_local_server, stop_local_server, msg, submit_btn, download_model])
+ stop_local_server.click(_toggle_local_server,
+ [stop_local_server, local_model_id, local_model_quantize, download_model],
+ [start_local_server, stop_local_server, msg, submit_btn, download_model])
def _toggle_nim_select(model: str, start: str, stop: str) -> Dict[gr.component, Dict[Any, Any]]:
""" Event listener to set up user actions for local nim inference. """
return {
- prefetch_nim: gr.update(value="Prefetch NIM",
- variant="secondary",
- interactive=(False if start == "Microservice Started" else True)),
+ prefetch_nim: gr.update(value="Prefetch NIM",
+ variant="secondary",
+ interactive=(False if start == "Microservice Started" else True)),
start_local_nim: gr.update(interactive=(True if start == "Start Microservice" else False)),
stop_local_nim: gr.update(interactive=(True if start == "Microservice Started" else False)),
}
-
+
nim_local_model_id.change(_toggle_nim_select,
- [nim_local_model_id, start_local_nim, stop_local_nim],
- [prefetch_nim, start_local_nim, stop_local_nim])
+ [nim_local_model_id, start_local_nim, stop_local_nim],
+ [prefetch_nim, start_local_nim, stop_local_nim])
- def _toggle_prefetch_nim(btn: str, model: str, start: str, stop: str, progress=gr.Progress()) -> Dict[gr.component, Dict[Any, Any]]:
+ def _toggle_prefetch_nim(btn: str, model: str, start: str, stop: str, progress=gr.Progress()) -> Dict[
+ gr.component, Dict[Any, Any]]:
""" Event listener to pull the NIM container for local NIM inference. """
if btn == "Prefetch NIM":
progress(0.1, desc="Initializing Task")
@@ -683,7 +762,8 @@ def _toggle_prefetch_nim(btn: str, model: str, start: str, stop: str, progress=g
stop_local_nim: gr.update(interactive=stop_interactive),
}
elif len(fnmatch.filter(list, 'nvcr.io/nim/?*/?*')) == 0:
- gr.Warning("User input is not a valid NIM container image format. Double check the spelling and try again.")
+ gr.Warning(
+ "User input is not a valid NIM container image format. Double check the spelling and try again.")
msg = "Prefetch NIM"
colors = "secondary"
interactive = True
@@ -694,9 +774,11 @@ def _toggle_prefetch_nim(btn: str, model: str, start: str, stop: str, progress=g
start_local_nim: gr.update(interactive=start_interactive),
stop_local_nim: gr.update(interactive=stop_interactive),
}
- rc = subprocess.call("/bin/bash /project/code/scripts/local-nim-configs/preflight.sh " + model, shell=True)
+ rc = subprocess.call("/bin/bash /project/code/scripts/local-nim-configs/preflight.sh " + model,
+ shell=True)
if rc != 0:
- gr.Warning("You may have improper configurations set for this mode. Check the Output > Chat in the AI Workbench UI for details.")
+ gr.Warning(
+ "You may have improper configurations set for this mode. Check the Output > Chat in the AI Workbench UI for details.")
msg = "Prefetch NIM"
colors = "secondary"
interactive = True
@@ -708,15 +790,17 @@ def _toggle_prefetch_nim(btn: str, model: str, start: str, stop: str, progress=g
stop_local_nim: gr.update(interactive=stop_interactive),
}
progress(0.6, desc="Pulling NIM container, a one-time process")
- rc = subprocess.call("/bin/bash /project/code/scripts/local-nim-configs/prefetch-nim.sh " + model, shell=True)
+ rc = subprocess.call("/bin/bash /project/code/scripts/local-nim-configs/prefetch-nim.sh " + model,
+ shell=True)
if rc == 0:
msg = "Container Pulled"
colors = "primary"
interactive = False
start_interactive = True if (start == "Start Microservice") else False
stop_interactive = True if (stop == "Stop Microservice") else False
- else:
- gr.Warning("Ran into an error pulling the NIM container. Is your NGC_CLI_API_KEY correct? Check the Output > Chat in the AI Workbench UI for details.")
+ else:
+ gr.Warning(
+ "Ran into an error pulling the NIM container. Is your NGC_CLI_API_KEY correct? Check the Output > Chat in the AI Workbench UI for details.")
msg = "Prefetch NIM"
colors = "secondary"
interactive = True
@@ -729,12 +813,13 @@ def _toggle_prefetch_nim(btn: str, model: str, start: str, stop: str, progress=g
start_local_nim: gr.update(interactive=start_interactive),
stop_local_nim: gr.update(interactive=stop_interactive),
}
-
+
prefetch_nim.click(_toggle_prefetch_nim,
- [prefetch_nim, nim_local_model_id, start_local_nim, stop_local_nim],
- [prefetch_nim, start_local_nim, stop_local_nim, msg])
-
- def _toggle_local_nim(btn: str, model: str, prefetched_nim: str, progress=gr.Progress()) -> Dict[gr.component, Dict[Any, Any]]:
+ [prefetch_nim, nim_local_model_id, start_local_nim, stop_local_nim],
+ [prefetch_nim, start_local_nim, stop_local_nim, msg])
+
+ def _toggle_local_nim(btn: str, model: str, prefetched_nim: str, progress=gr.Progress()) -> Dict[
+ gr.component, Dict[Any, Any]]:
""" Event listener for running and/or shutting down the local nim sidecar container. """
if btn == "Start Microservice":
progress(0.2, desc="Initializing Task")
@@ -743,13 +828,14 @@ def _toggle_local_nim(btn: str, model: str, prefetched_nim: str, progress=gr.Pro
time.sleep(0.25)
progress(0.4, desc="Checking user configs...")
if len(fnmatch.filter(list, 'nvcr.io/nim/?*/?*')) == 0:
- gr.Warning("User input is not a valid NIM container image format. Double check the spelling and try again.")
+ gr.Warning(
+ "User input is not a valid NIM container image format. Double check the spelling and try again.")
out = ["Start Microservice", "Stop Microservice"]
colors = ["secondary", "secondary"]
interactive = [False, True, True, False]
model_ip = [""]
model_id = [""]
- value=""
+ value = ""
submit_value = "[NOT READY] Submit"
submittable = 1
prefetch_nim_interactive = True
@@ -758,21 +844,24 @@ def _toggle_local_nim(btn: str, model: str, prefetched_nim: str, progress=gr.Pro
stop_local_nim: gr.update(value=out[1], variant=colors[1], interactive=interactive[1]),
nim_local_model_id: gr.update(interactive=interactive[2]),
remote_nim_msg: gr.update(value=value),
- which_nim_tab: submittable,
+ which_nim_tab: submittable,
submit_btn: gr.update(value=submit_value, interactive=interactive[3]),
prefetch_nim: gr.update(interactive=prefetch_nim_interactive),
- msg: gr.update(interactive=True,
- placeholder=("Enter text and press SUBMIT" if interactive[3] else "[NOT READY] Start the Local Microservice OR Select a Different Inference Mode.")),
+ msg: gr.update(interactive=True,
+ placeholder=("Enter text and press SUBMIT" if interactive[
+ 3] else "[NOT READY] Start the Local Microservice OR Select a Different Inference Mode.")),
}
- rc = subprocess.call("/bin/bash /project/code/scripts/local-nim-configs/preflight.sh " + model, shell=True)
+ rc = subprocess.call("/bin/bash /project/code/scripts/local-nim-configs/preflight.sh " + model,
+ shell=True)
if rc != 0:
- gr.Warning("You may have improper configurations set for this mode. Check the Output > Chat in the AI Workbench UI for details.")
+ gr.Warning(
+ "You may have improper configurations set for this mode. Check the Output > Chat in the AI Workbench UI for details.")
out = ["Internal Server Error, Try Again", "Stop Microservice"]
colors = ["stop", "secondary"]
interactive = [False, True, True, False]
model_ip = [""]
model_id = [""]
- value=""
+ value = ""
submit_value = "[NOT READY] Submit"
submittable = 1
prefetch_nim_interactive = True
@@ -781,32 +870,36 @@ def _toggle_local_nim(btn: str, model: str, prefetched_nim: str, progress=gr.Pro
stop_local_nim: gr.update(value=out[1], variant=colors[1], interactive=interactive[1]),
nim_local_model_id: gr.update(interactive=interactive[2]),
remote_nim_msg: gr.update(value=value),
- which_nim_tab: submittable,
+ which_nim_tab: submittable,
submit_btn: gr.update(value=submit_value, interactive=interactive[3]),
prefetch_nim: gr.update(interactive=prefetch_nim_interactive),
- msg: gr.update(interactive=True,
- placeholder=("Enter text and press SUBMIT" if interactive[3] else "[NOT READY] Start the Local Microservice OR Select a Different Inference Mode.")),
+ msg: gr.update(interactive=True,
+ placeholder=("Enter text and press SUBMIT" if interactive[
+ 3] else "[NOT READY] Start the Local Microservice OR Select a Different Inference Mode.")),
}
progress(0.6, desc="Starting Microservice, may take a moment")
- rc = subprocess.call("/bin/bash /project/code/scripts/local-nim-configs/start-local-nim.sh " + model + " " + utils.nim_extract_model(model), shell=True)
+ rc = subprocess.call(
+ "/bin/bash /project/code/scripts/local-nim-configs/start-local-nim.sh " + model + " " + utils.nim_extract_model(
+ model), shell=True)
if rc == 0:
out = ["Microservice Started", "Stop Microservice"]
colors = ["primary", "secondary"]
interactive = [False, True, False, True]
model_ip = ["local_nim"]
model_id = [model]
- value="
Stop the local microservice before using a remote microservice."
+ value = "
Stop the local microservice before using a remote microservice."
submit_value = "Submit"
submittable = 0
prefetch_nim_interactive = False
- else:
- gr.Warning("Ran into an issue starting up the NIM Container. Double check the spelling, and see Troubleshooting for details. ")
+ else:
+ gr.Warning(
+ "Ran into an issue starting up the NIM Container. Double check the spelling, and see Troubleshooting for details. ")
out = ["Internal Server Error, Try Again", "Stop Microservice"]
colors = ["stop", "secondary"]
interactive = [False, True, True, False]
model_ip = [""]
model_id = [""]
- value=""
+ value = ""
submit_value = "[NOT READY] Submit"
submittable = 1
prefetch_nim_interactive = True if prefetched_nim == "Prefetch NIM" else False
@@ -823,18 +916,19 @@ def _toggle_local_nim(btn: str, model: str, prefetched_nim: str, progress=gr.Pro
interactive = [True, False, True, False]
model_ip = [""]
model_id = [""]
- value="
Enter the details below. Then start chatting!"
+ value = "
Enter the details below. Then start chatting!"
submit_value = "[NOT READY] Submit"
submittable = 1
prefetch_nim_interactive = True if prefetched_nim == "Prefetch NIM" else False
- else:
- gr.Warning("Ran into an issue stopping the NIM Container, try again. The service may still be running. ")
+ else:
+ gr.Warning(
+ "Ran into an issue stopping the NIM Container, try again. The service may still be running. ")
out = ["Start Microservice", "Internal Server Error, Try Again"]
colors = ["secondary", "stop"]
interactive = [True, False, True, True]
model_ip = ["local_nim"]
model_id = [model]
- value=""
+ value = ""
submit_value = "Submit"
submittable = 0
prefetch_nim_interactive = False
@@ -845,77 +939,87 @@ def _toggle_local_nim(btn: str, model: str, prefetched_nim: str, progress=gr.Pro
stop_local_nim: gr.update(value=out[1], variant=colors[1], interactive=interactive[1]),
nim_local_model_id: gr.update(interactive=interactive[2]),
remote_nim_msg: gr.update(value=value),
- which_nim_tab: submittable,
+ which_nim_tab: submittable,
submit_btn: gr.update(value=submit_value, interactive=interactive[3]),
prefetch_nim: gr.update(interactive=prefetch_nim_interactive),
- msg: gr.update(interactive=True,
- placeholder=("Enter text and press SUBMIT" if interactive[3] else "[NOT READY] Start the Local Microservice OR Select a Different Inference Mode.")),
+ msg: gr.update(interactive=True,
+ placeholder=("Enter text and press SUBMIT" if interactive[
+ 3] else "[NOT READY] Start the Local Microservice OR Select a Different Inference Mode.")),
}
- start_local_nim.click(_toggle_local_nim,
- [start_local_nim,
- nim_local_model_id,
- prefetch_nim],
- [start_local_nim,
- stop_local_nim,
- nim_local_model_id,
- remote_nim_msg,
- which_nim_tab,
- submit_btn,
- prefetch_nim,
- msg])
- stop_local_nim.click(_toggle_local_nim,
- [stop_local_nim,
- nim_local_model_id,
- prefetch_nim],
- [start_local_nim,
- stop_local_nim,
- nim_local_model_id,
- remote_nim_msg,
- which_nim_tab,
- submit_btn,
- prefetch_nim,
- msg])
-
- def _lock_tabs(btn: str,
- start_local_server: str,
- which_nim_tab: int,
- nvcf_model_family: str,
+ start_local_nim.click(_toggle_local_nim,
+ [start_local_nim,
+ nim_local_model_id,
+ prefetch_nim],
+ [start_local_nim,
+ stop_local_nim,
+ nim_local_model_id,
+ remote_nim_msg,
+ which_nim_tab,
+ submit_btn,
+ prefetch_nim,
+ msg])
+ stop_local_nim.click(_toggle_local_nim,
+ [stop_local_nim,
+ nim_local_model_id,
+ prefetch_nim],
+ [start_local_nim,
+ stop_local_nim,
+ nim_local_model_id,
+ remote_nim_msg,
+ which_nim_tab,
+ submit_btn,
+ prefetch_nim,
+ msg])
+
+ def _lock_tabs(btn: str,
+ start_local_server: str,
+ which_nim_tab: int,
+ nvcf_model_family: str,
progress=gr.Progress()) -> Dict[gr.component, Dict[Any, Any]]:
""" Event listener to lock settings options with the user selected inference mode. """
if btn == "Local System":
if start_local_server == "Server Started":
- interactive=True
- else:
- interactive=False
+ interactive = True
+ else:
+ interactive = False
return {
tabs: gr.update(selected=0),
- msg: gr.update(interactive=True,
- placeholder=("Enter text and press SUBMIT" if interactive else "[NOT READY] Start the Local Inference Server OR Select a Different Inference Mode.")),
- inference_mode: gr.update(info="To use your LOCAL GPU for inference, start the Local Inference Server before making a query."),
- submit_btn: gr.update(value="Submit" if interactive else "[NOT READY] Submit", interactive=interactive),
+ msg: gr.update(interactive=True,
+ placeholder=(
+ "Enter text and press SUBMIT" if interactive else "[NOT READY] Start the Local Inference Server OR Select a Different Inference Mode.")),
+ inference_mode: gr.update(
+ info="To use your LOCAL GPU for inference, start the Local Inference Server before making a query."),
+ submit_btn: gr.update(value="Submit" if interactive else "[NOT READY] Submit",
+ interactive=interactive),
}
elif btn == "Cloud Endpoint":
if nvcf_model_family == "Select":
- interactive=False
- else:
- interactive=True
+ interactive = False
+ else:
+ interactive = True
return {
tabs: gr.update(selected=1),
- msg: gr.update(interactive=True, placeholder=("Enter text and press SUBMIT" if interactive else "[NOT READY] Select a model OR Select a Different Inference Mode.")),
- inference_mode: gr.update(info="To use a CLOUD endpoint for inference, select the desired model before making a query."),
- submit_btn: gr.update(value="Submit" if interactive else "[NOT READY] Submit", interactive=interactive),
+ msg: gr.update(interactive=True, placeholder=(
+ "Enter text and press SUBMIT" if interactive else "[NOT READY] Select a model OR Select a Different Inference Mode.")),
+ inference_mode: gr.update(
+ info="To use a CLOUD endpoint for inference, select the desired model before making a query."),
+ submit_btn: gr.update(value="Submit" if interactive else "[NOT READY] Submit",
+ interactive=interactive),
}
elif btn == "Self-Hosted Microservice":
return {
tabs: gr.update(selected=2),
- msg: gr.update(interactive=True, placeholder="Enter text and press SUBMIT" if (which_nim_tab == 0) else "[NOT READY] Start the Local Microservice OR Select a Different Inference Mode."),
- inference_mode: gr.update(info="To use a MICROSERVICE for inference, input the endpoint (and/or model) before making a query."),
+ msg: gr.update(interactive=True, placeholder="Enter text and press SUBMIT" if (
+ which_nim_tab == 0) else "[NOT READY] Start the Local Microservice OR Select a Different Inference Mode."),
+ inference_mode: gr.update(
+ info="To use a MICROSERVICE for inference, input the endpoint (and/or model) before making a query."),
submit_btn: gr.update(value="Submit" if (which_nim_tab == 0) else "[NOT READY] Submit",
interactive=True if (which_nim_tab == 0) else False),
}
-
- inference_mode.change(_lock_tabs, [inference_mode, start_local_server, which_nim_tab, nvcf_model_family], [tabs, msg, inference_mode, submit_btn])
+
+ inference_mode.change(_lock_tabs, [inference_mode, start_local_server, which_nim_tab, nvcf_model_family],
+ [tabs, msg, inference_mode, submit_btn])
def _toggle_kb(btn: str, docs_uploaded, progress=gr.Progress()) -> Dict[gr.component, Dict[Any, Any]]:
""" Event listener to clear the vector database of all documents. """
@@ -933,7 +1037,7 @@ def _toggle_kb(btn: str, docs_uploaded, progress=gr.Progress()) -> Dict[gr.compo
for key, value in update_docs_uploaded.items():
update_docs_uploaded.update({str(key): "Deleted"})
time.sleep(0.5)
- else:
+ else:
gr.Warning("Your files may still be present in the database. Try again.")
out = ["Error Clearing Vector Database"]
colors = ["stop"]
@@ -942,14 +1046,14 @@ def _toggle_kb(btn: str, docs_uploaded, progress=gr.Progress()) -> Dict[gr.compo
for key, value in update_docs_uploaded.items():
update_docs_uploaded.update({str(key): "Unknown"})
time.sleep(0.5)
- else:
+ else:
out = ["Clear Database"]
colors = ["secondary"]
interactive = [True]
return {
- file_output: gr.update(value=None,
- interactive=True,
- show_label=False,
+ file_output: gr.update(value=None,
+ interactive=True,
+ show_label=False,
file_types=["text",
".pdf",
".html",
@@ -958,17 +1062,19 @@ def _toggle_kb(btn: str, docs_uploaded, progress=gr.Progress()) -> Dict[gr.compo
".txt",
".odt",
".rtf",
- ".tex"],
+ ".tex"],
file_count="multiple"),
clear_docs: gr.update(value=out[0], variant=colors[0], interactive=interactive[0]),
kb_checkbox: gr.update(value=None),
docs: gr.update(value=update_docs_uploaded),
docs_history: update_docs_uploaded,
}
-
- clear_docs.click(_toggle_kb, [clear_docs, docs_history], [clear_docs, file_output, kb_checkbox, msg, docs, docs_history])
- def _vdb_select(inf_mode: str, start_local: str, vdb_active: bool, progress=gr.Progress()) -> Dict[gr.component, Dict[Any, Any]]:
+ clear_docs.click(_toggle_kb, [clear_docs, docs_history],
+ [clear_docs, file_output, kb_checkbox, msg, docs, docs_history])
+
+ def _vdb_select(inf_mode: str, start_local: str, vdb_active: bool, progress=gr.Progress()) -> Dict[
+ gr.component, Dict[Any, Any]]:
""" Event listener to select the vector database settings top-level tab. """
progress(0.25, desc="Initializing Task")
time.sleep(0.25)
@@ -977,17 +1083,18 @@ def _vdb_select(inf_mode: str, start_local: str, vdb_active: bool, progress=gr.P
if rc == 0:
if not vdb_active:
gr.Info("The Vector Database is now ready for file upload. ")
- interactive=True
- else:
+ interactive = True
+ else:
gr.Warning("The Vector Database has timed out. Check Output > Chat on AI Workbench for the full logs. ")
- interactive=False
+ interactive = False
progress(0.75, desc="Cleaning Up")
time.sleep(0.25)
return [True if rc == 0 else False,
- gr.update(interactive=interactive),
+ gr.update(interactive=interactive),
gr.update(interactive=interactive)]
-
- vdb_settings.select(_vdb_select, [inference_mode, start_local_server, vdb_active], [vdb_active, file_output, clear_docs])
+
+ vdb_settings.select(_vdb_select, [inference_mode, start_local_server, vdb_active],
+ [vdb_active, file_output, clear_docs])
def _document_upload(files, docs_uploaded, progress=gr.Progress()) -> Dict[gr.component, Dict[Any, Any]]:
""" Event listener to upload documents to the vector database. """
@@ -999,24 +1106,25 @@ def _document_upload(files, docs_uploaded, progress=gr.Progress()) -> Dict[gr.co
if rc == 0:
progress(0.75, desc="Pushing uploaded files to DB...")
file_paths = utils.upload_file(files, client)
- success=True
+ success = True
for file in file_paths:
update_docs_uploaded.update({str(file.split('/')[-1]): "Uploaded Successfully"})
- else:
+ else:
gr.Warning("Hang Tight! The Vector DB may be temporarily busy. Give it a moment, and then try again. ")
file_paths = None
- success=False
+ success = False
file_names = [file.name for file in files]
for file in file_names:
update_docs_uploaded.update({str(file.split('/')[-1]): "Failed to Upload"})
return {
- file_output: gr.update(value=file_paths),
+ file_output: gr.update(value=file_paths),
kb_checkbox: gr.update(value="Toggle to use Vector Database" if success else None),
docs: gr.update(value=update_docs_uploaded),
docs_history: update_docs_uploaded,
}
- file_output.upload(_document_upload, [file_output, docs_history], [file_output, kb_checkbox, docs, docs_history])
+ file_output.upload(_document_upload, [file_output, docs_history],
+ [file_output, kb_checkbox, docs, docs_history])
def _toggle_rag_start(btn: str, progress=gr.Progress()) -> Dict[gr.component, Dict[Any, Any]]:
""" Event listener to initialize the RAG backend API server and start warming up the vector database. """
@@ -1025,41 +1133,44 @@ def _toggle_rag_start(btn: str, progress=gr.Progress()) -> Dict[gr.component, Di
progress(0.5, desc="Setting Up RAG Backend (one-time process, may take a few moments)")
rc = subprocess.call("/bin/bash /project/code/scripts/rag-consolidated.sh ", shell=True)
if rc == 2:
- gr.Info("Inferencing is ready, but the Vector DB may still be spinning up. This can take a few moments to complete. ")
+ gr.Info(
+ "Inferencing is ready, but the Vector DB may still be spinning up. This can take a few moments to complete. ")
visibility = [False, True, True, True]
interactive = [False, True, True, False]
- submit_value="[NOT READY] Submit"
+ submit_value = "[NOT READY] Submit"
elif rc == 0:
visibility = [False, True, True, True]
interactive = [False, True, True, False]
- submit_value="[NOT READY] Submit"
+ submit_value = "[NOT READY] Submit"
else:
gr.Warning("Something went wrong. Check the Output in AI Workbench, or try again. ")
visibility = [True, True, True, False]
interactive = [False, False, False, False]
- submit_value="[NOT READY] Submit"
+ submit_value = "[NOT READY] Submit"
progress(0.75, desc="Cleaning Up")
time.sleep(0.25)
return {
- setup_settings: gr.update(visible=visibility[0], interactive=interactive[0]),
+ setup_settings: gr.update(visible=visibility[0], interactive=interactive[0]),
inf_settings: gr.update(visible=visibility[1], interactive=interactive[1]),
vdb_settings: gr.update(visible=visibility[2], interactive=interactive[2]),
submit_btn: gr.update(value=submit_value, interactive=interactive[3]),
hide_all_settings: gr.update(visible=visibility[3]),
- msg: gr.update(interactive=True, placeholder="[NOT READY] Select a model OR Select a Different Inference Mode." if rc != 1 else "Enter text and press SUBMIT"),
+ msg: gr.update(interactive=True,
+ placeholder="[NOT READY] Select a model OR Select a Different Inference Mode." if rc != 1 else "Enter text and press SUBMIT"),
}
-
- rag_start_button.click(_toggle_rag_start, [rag_start_button], [setup_settings, inf_settings, vdb_settings, submit_btn, hide_all_settings, msg])
+
+ rag_start_button.click(_toggle_rag_start, [rag_start_button],
+ [setup_settings, inf_settings, vdb_settings, submit_btn, hide_all_settings, msg])
def _toggle_remote_ms() -> Dict[gr.component, Dict[Any, Any]]:
""" Event listener to select the remote-microservice inference mode for microservice inference. """
return {
- which_nim_tab: 0,
- is_local_nim: False,
+ which_nim_tab: 0,
+ is_local_nim: False,
submit_btn: gr.update(value="Submit", interactive=True),
msg: gr.update(placeholder="Enter text and press SUBMIT")
}
-
+
remote_microservice.select(_toggle_remote_ms, None, [which_nim_tab, is_local_nim, submit_btn, msg])
def _toggle_local_ms(start_btn: str, stop_btn: str) -> Dict[gr.component, Dict[Any, Any]]:
@@ -1069,7 +1180,7 @@ def _toggle_local_ms(start_btn: str, stop_btn: str) -> Dict[gr.component, Dict[A
submit_value = "Submit"
msg_value = "Enter text and press SUBMIT"
submittable = 0
- elif (start_btn == "Start Microservice" and stop_btn == "Stop Microservice"):
+ elif (start_btn == "Start Microservice" and stop_btn == "Stop Microservice"):
interactive = False
submit_value = "[NOT READY] Submit"
msg_value = "[NOT READY] Start the Local Microservice OR Select a Different Inference Mode."
@@ -1080,53 +1191,54 @@ def _toggle_local_ms(start_btn: str, stop_btn: str) -> Dict[gr.component, Dict[A
msg_value = "[NOT READY] Start the Local Microservice OR Select a Different Inference Mode."
submittable = 1
return {
- which_nim_tab: submittable,
- is_local_nim: True,
+ which_nim_tab: submittable,
+ is_local_nim: True,
submit_btn: gr.update(value=submit_value, interactive=interactive),
msg: gr.update(placeholder=msg_value)
}
-
- local_microservice.select(_toggle_local_ms, [start_local_nim, stop_local_nim], [which_nim_tab, is_local_nim, submit_btn, msg])
-
+
+ local_microservice.select(_toggle_local_ms, [start_local_nim, stop_local_nim],
+ [which_nim_tab, is_local_nim, submit_btn, msg])
+
# form actions
_my_build_stream = functools.partial(_stream_predict, client)
msg.submit(
- _my_build_stream, [kb_checkbox,
- inference_mode,
- nvcf_model_id,
- nim_model_ip,
- nim_model_port,
+ _my_build_stream, [kb_checkbox,
+ inference_mode,
+ nvcf_model_id,
+ nim_model_ip,
+ nim_model_port,
nim_local_model_id,
nim_model_id,
- is_local_nim,
+ is_local_nim,
num_token_slider,
temp_slider,
- top_p_slider,
- freq_pen_slider,
+ top_p_slider,
+ freq_pen_slider,
pres_pen_slider,
start_local_server,
local_model_id,
- msg,
+ msg,
metrics_history,
chatbot], [msg, chatbot, context, metrics, metrics_history]
)
submit_btn.click(
- _my_build_stream, [kb_checkbox,
- inference_mode,
- nvcf_model_id,
- nim_model_ip,
- nim_model_port,
+ _my_build_stream, [kb_checkbox,
+ inference_mode,
+ nvcf_model_id,
+ nim_model_ip,
+ nim_model_port,
nim_local_model_id,
nim_model_id,
- is_local_nim,
+ is_local_nim,
num_token_slider,
temp_slider,
- top_p_slider,
- freq_pen_slider,
+ top_p_slider,
+ freq_pen_slider,
pres_pen_slider,
start_local_server,
local_model_id,
- msg,
+ msg,
metrics_history,
chatbot], [msg, chatbot, context, metrics, metrics_history]
)
@@ -1134,32 +1246,33 @@ def _toggle_local_ms(start_btn: str, stop_btn: str) -> Dict[gr.component, Dict[A
page.queue()
return page
+
def _stream_predict(
- client: chat_client.ChatClient,
- use_knowledge_base: List[str],
- inference_mode: str,
- nvcf_model_id: str,
- nim_model_ip: str,
- nim_model_port: str,
- nim_local_model_id: str,
- nim_model_id: str,
- is_local_nim: bool,
- num_token_slider: float,
- temp_slider: float,
- top_p_slider: float,
- freq_pen_slider: float,
- pres_pen_slider: float,
- start_local_server: str,
- local_model_id: str,
- question: str,
- metrics_history: dict,
- chat_history: List[Tuple[str, str]],
+ client: chat_client.ChatClient,
+ use_knowledge_base: List[str],
+ inference_mode: str,
+ nvcf_model_id: str,
+ nim_model_ip: str,
+ nim_model_port: str,
+ nim_local_model_id: str,
+ nim_model_id: str,
+ is_local_nim: bool,
+ num_token_slider: float,
+ temp_slider: float,
+ top_p_slider: float,
+ freq_pen_slider: float,
+ pres_pen_slider: float,
+ start_local_server: str,
+ local_model_id: str,
+ question: str,
+ metrics_history: dict,
+ chat_history: List[Tuple[str, str]],
) -> Any:
"""
Make a prediction of the response to the prompt.
-
- Parameters:
- client (chat_client.ChatClient): The chat client running the application.
+
+ Parameters:
+ client (chat_client.ChatClient): The chat client running the application.
use_knowledge_base (List[str]): Whether or not the vector db should be invoked for this query
inference_mode (str): The inference mode selected for this query
nvcf_model_id (str): The cloud endpoint selected for this query
@@ -1171,14 +1284,14 @@ def _stream_predict(
num_token_slider (float): max number of tokens to generate
temp_slider (float): temperature selected for this query
top_p_slider (float): top_p selected for this query
- freq_pen_slider (float): frequency penalty selected for this query
+ freq_pen_slider (float): frequency penalty selected for this query
pres_pen_slider (float): presence penalty selected for this query
start_local_server (str): local TGI server status
local_model_id (str): model name selected for local TGI inference of this query
question (str): user prompt
metrics_history (dict): current list of generated metrics
chat_history (List[Tuple[str, str]]): current history of chatbot messages
-
+
Returns:
(Dict[gr.component, Dict[Any, Any]]): Gradio components to update.
"""
@@ -1190,9 +1303,11 @@ def _stream_predict(
# Input validation for remote microservice settings
if (utils.inference_to_config(inference_mode) == "microservice" and
- (len(nim_model_ip) == 0) and
- is_local_nim == False):
- yield "", chat_history + [[question, "*** ERR: Unable to process query. ***\n\nMessage: Hostname/IP field cannot be empty. "]], None, gr.update(value=metrics_history), metrics_history
+ (len(nim_model_ip) == 0) and
+ is_local_nim == False):
+ yield "", chat_history + [[question,
+ "*** ERR: Unable to process query. ***\n\nMessage: Hostname/IP field cannot be empty. "]], None, gr.update(
+ value=metrics_history), metrics_history
# Inputs are validated, can proceed with generating a response to the user query.
else:
@@ -1211,43 +1326,49 @@ def _stream_predict(
# Generate the output
chunk_num = 0
- for chunk in client.predict(question,
- utils.inference_to_config(inference_mode),
+ for chunk in client.predict(question,
+ utils.inference_to_config(inference_mode),
local_model_id,
- utils.cloud_to_config(nvcf_model_id),
- "local_nim" if is_local_nim else nim_model_ip,
- "8000" if is_local_nim else nim_model_port,
+ utils.cloud_to_config(nvcf_model_id),
+ "local_nim" if is_local_nim else nim_model_ip,
+ "8000" if is_local_nim else nim_model_port,
utils.nim_extract_model(nim_local_model_id) if is_local_nim else nim_model_id,
temp_slider,
top_p_slider,
freq_pen_slider,
pres_pen_slider,
- False if len(use_knowledge_base) == 0 else True,
+ False if len(use_knowledge_base) == 0 else True,
int(num_token_slider)):
-
+
# The first chunk returned will always be the time to first token. Let's process that first.
if chunk_num == 0:
chunk_num += 1
ttft = chunk
- updated_metrics_history = utils.get_initial_metrics(metrics_history, response_num, inference_mode, nvcf_model_id, local_model_id,
- nim_local_model_id, is_local_nim, nim_model_id, retrieval_ftime, ttft)
+ updated_metrics_history = utils.get_initial_metrics(metrics_history, response_num, inference_mode,
+ nvcf_model_id, local_model_id,
+ nim_local_model_id, is_local_nim, nim_model_id,
+ retrieval_ftime, ttft)
yield "", chat_history, documents, gr.update(value=updated_metrics_history), updated_metrics_history
-
- # Every next chunk will be the generated response. Let's append to the output and render it in real time.
+
+ # Every next chunk will be the generated response. Let's append to the output and render it in real time.
else:
chunks += chunk
chunk_num += 1
- yield "", chat_history + [[question, chunks]], documents, gr.update(value=metrics_history), metrics_history
+ yield "", chat_history + [[question, chunks]], documents, gr.update(
+ value=metrics_history), metrics_history
# With final output generated, run some final calculations and display them as metrics to the user
- gen_time, e2e_ftime, tokens, tokens_sec, itl = utils.get_final_metrics(time.time(), e2e_stime, ttft, retrieval_ftime, chunks)
- metrics_history.get(str(response_num)).update({"Generation Time": gen_time + "ms",
- "End to End Time (E2E)": e2e_ftime + "ms",
- "Tokens (est.)": tokens + " tokens",
- "Tokens/Second (est.)": tokens_sec + " tokens/sec",
+ gen_time, e2e_ftime, tokens, tokens_sec, itl = utils.get_final_metrics(time.time(), e2e_stime, ttft,
+ retrieval_ftime, chunks)
+ metrics_history.get(str(response_num)).update({"Generation Time": gen_time + "ms",
+ "End to End Time (E2E)": e2e_ftime + "ms",
+ "Tokens (est.)": tokens + " tokens",
+ "Tokens/Second (est.)": tokens_sec + " tokens/sec",
"Inter-Token Latency (est.)": itl + " ms"})
yield "", gr.update(show_label=False), documents, gr.update(value=metrics_history), metrics_history
- # Catch any exceptions and direct the user to the logs/output.
- except Exception as e:
- yield "", chat_history + [[question, "*** ERR: Unable to process query. ***\n\nMessage: " + str(e)]], None, gr.update(value=metrics_history), metrics_history
+ # Catch any exceptions and direct the user to the logs/output.
+ except Exception as e:
+ yield "", chat_history + [
+ [question, "*** ERR: Unable to process query. ***\n\nMessage: " + str(e)]], None, gr.update(
+ value=metrics_history), metrics_history
\ No newline at end of file
diff --git a/code/chatui/pages/utils.py b/code/chatui/pages/utils.py
index b8626b0..6914660 100644
--- a/code/chatui/pages/utils.py
+++ b/code/chatui/pages/utils.py
@@ -30,16 +30,17 @@
from chatui import assets, chat_client
-### Helper Functions used by the application. ###
+
+### Helper Functions used by the application. ###
def upload_file(files: List[Path], client: chat_client.ChatClient) -> List[str]:
"""
Use the client to upload a document to the vector database.
-
- Parameters:
+
+ Parameters:
files (List[Path]): List of filepaths to the files being uploaded
client (chat_client.ChatClient): Chat client used for uploading files
-
+
Returns:
file_paths (List[str]): List of file names
"""
@@ -47,142 +48,146 @@ def upload_file(files: List[Path], client: chat_client.ChatClient) -> List[str]:
client.upload_documents(file_paths)
return file_paths
+
def inference_to_config(gradio: str) -> str:
"""
Helper function to convert displayed inference mode string to a backend-readable string.
-
- Parameters:
+
+ Parameters:
gradio (str): Rendered inference mode string on frontend.
-
+
Returns:
(str): Backend-readable inference mode string.
"""
- if gradio == "Local System":
+ if gradio == "Local System":
return "local"
- elif gradio == "Cloud Endpoint":
+ elif gradio == "Cloud Endpoint":
return "cloud"
- elif gradio == "Self-Hosted Microservice":
+ elif gradio == "Self-Hosted Microservice":
return "microservice"
else:
return gradio
+
def cloud_to_config(cloud: str) -> str:
"""
Helper function to convert rendered cloud model string to a backend-readable endpoint.
-
- Parameters:
+
+ Parameters:
cloud (str): Rendered cloud model string on frontend.
-
+
Returns:
(str): Backend-readable cloud model endpoint.
"""
- if cloud == "Llama3 ChatQA-1.5 8B":
+ if cloud == "Llama3 ChatQA-1.5 8B":
return "nvidia/llama3-chatqa-1.5-8b"
- elif cloud == "Llama3 ChatQA-1.5 70B":
+ elif cloud == "Llama3 ChatQA-1.5 70B":
return "nvidia/llama3-chatqa-1.5-70b"
- elif cloud == "Nemotron Mini 4B":
+ elif cloud == "Nemotron Mini 4B":
return "nvidia/nemotron-mini-4b-instruct"
- elif cloud == "Nemotron-4 340B Instruct":
+ elif cloud == "Nemotron-4 340B Instruct":
return "nvidia/nemotron-4-340b-instruct"
- elif cloud == "Mistral-NeMo 12B Instruct":
+ elif cloud == "Mistral-NeMo 12B Instruct":
return "nv-mistralai/mistral-nemo-12b-instruct"
- elif cloud == "Mistral 7B Instruct v0.2":
+ elif cloud == "Mistral 7B Instruct v0.2":
return "mistralai/mistral-7b-instruct-v0.2"
- elif cloud == "Mistral 7B Instruct v0.3":
+ elif cloud == "Mistral 7B Instruct v0.3":
return "mistralai/mistral-7b-instruct-v0.3"
- elif cloud == "Mistral Large":
+ elif cloud == "Mistral Large":
return "mistralai/mistral-large"
- elif cloud == "Mixtral 8x7B Instruct v0.1":
+ elif cloud == "Mixtral 8x7B Instruct v0.1":
return "mistralai/mixtral-8x7b-instruct-v0.1"
- elif cloud == "Mixtral 8x22B Instruct v0.1":
+ elif cloud == "Mixtral 8x22B Instruct v0.1":
return "mistralai/mixtral-8x22b-instruct-v0.1"
- elif cloud == "Mamba Codestral 7B v0.1":
+ elif cloud == "Mamba Codestral 7B v0.1":
return "mistralai/mamba-codestral-7b-v0.1"
- elif cloud == "Codestral 22B Instruct v0.1":
+ elif cloud == "Codestral 22B Instruct v0.1":
return "mistralai/codestral-22b-instruct-v0.1"
- elif cloud == "Llama 2 70B":
+ elif cloud == "Llama 2 70B":
return "meta/llama2-70b"
- elif cloud == "Llama 3 8B":
+ elif cloud == "Llama 3 8B":
return "meta/llama3-8b-instruct"
- elif cloud == "Llama 3 70B":
+ elif cloud == "Llama 3 70B":
return "meta/llama3-70b-instruct"
- elif cloud == "Llama 3.1 8B":
+ elif cloud == "Llama 3.1 8B":
return "meta/llama-3.1-8b-instruct"
- elif cloud == "Llama 3.1 70B":
+ elif cloud == "Llama 3.1 70B":
return "meta/llama-3.1-70b-instruct"
- elif cloud == "Llama 3.1 405B":
+ elif cloud == "Llama 3.1 405B":
return "meta/llama-3.1-405b-instruct"
- elif cloud == "Gemma 2B":
+ elif cloud == "Gemma 2B":
return "google/gemma-2b"
- elif cloud == "Gemma 7B":
+ elif cloud == "Gemma 7B":
return "google/gemma-7b"
- elif cloud == "Code Gemma 7B":
+ elif cloud == "Code Gemma 7B":
return "google/codegemma-7b"
- elif cloud == "Phi-3 Mini (4k)":
+ elif cloud == "Phi-3 Mini (4k)":
return "microsoft/phi-3-mini-4k-instruct"
- elif cloud == "Phi-3 Mini (128k)":
+ elif cloud == "Phi-3 Mini (128k)":
return "microsoft/phi-3-mini-128k-instruct"
- elif cloud == "Phi-3 Small (8k)":
+ elif cloud == "Phi-3 Small (8k)":
return "microsoft/phi-3-small-8k-instruct"
- elif cloud == "Phi-3 Small (128k)":
+ elif cloud == "Phi-3 Small (128k)":
return "microsoft/phi-3-small-128k-instruct"
- elif cloud == "Phi-3 Medium (4k)":
+ elif cloud == "Phi-3 Medium (4k)":
return "microsoft/phi-3-medium-4k-instruct"
- elif cloud == "Phi-3 Medium (128k)":
+ elif cloud == "Phi-3 Medium (128k)":
return "microsoft/phi-3-medium-128k-instruct"
- elif cloud == "Phi-3.5 Mini Instruct":
+ elif cloud == "Phi-3.5 Mini Instruct":
return "microsoft/phi-3.5-mini-instruct"
- elif cloud == "Phi-3.5 MoE Instruct":
+ elif cloud == "Phi-3.5 MoE Instruct":
return "microsoft/phi-3.5-moe-instruct"
- elif cloud == "Arctic":
+ elif cloud == "Arctic":
return "snowflake/arctic"
- elif cloud == "Granite 8B Code":
+ elif cloud == "Granite 8B Code":
return "ibm/granite-8b-code-instruct"
- elif cloud == "Granite 34B Code":
+ elif cloud == "Granite 34B Code":
return "ibm/granite-34b-code-instruct"
- elif cloud == "Solar 10.7B Instruct":
+ elif cloud == "Solar 10.7B Instruct":
return "upstage/solar-10.7b-instruct"
- elif cloud == "Jamba-1.5 Mini Instruct":
+ elif cloud == "Jamba-1.5 Mini Instruct":
return "ai21labs/jamba-1.5-mini-instruct"
- elif cloud == "Jamba-1.5 Large Instruct":
+ elif cloud == "Jamba-1.5 Large Instruct":
return "ai21labs/jamba-1.5-large-instruct"
else:
return "mistralai/mistral-7b-instruct-v0.2"
+
def quant_to_config(quant: str) -> str:
"""
Helper function to convert rendered quantization string to a backend-readable string.
-
- Parameters:
+
+ Parameters:
quant (str): Rendered quantization string on frontend.
-
+
Returns:
(str): Backend-readable quantization string.
"""
- if quant == "None":
+ if quant == "None":
return "none"
- elif quant == "8-Bit":
+ elif quant == "8-Bit":
return "bitsandbytes"
- elif quant == "4-Bit":
+ elif quant == "4-Bit":
return "bitsandbytes-nf4"
else:
return "none"
+
def preset_quantization() -> str:
"""
Helper function to introspect the system and preset the recommended quantization level.
-
- Parameters:
+
+ Parameters:
None
-
+
Returns:
(str): quantization level to be rendered on the frontend application.
"""
inf_mem = 0
for i in range(torch.cuda.device_count()):
inf_mem += torch.cuda.get_device_properties(i).total_memory
- gb = inf_mem/(2**30)
-
+ gb = inf_mem / (2 ** 30)
+
if gb >= 40:
return "None"
elif gb >= 24:
@@ -190,21 +195,22 @@ def preset_quantization() -> str:
else:
return "4-Bit"
+
def preset_max_tokens() -> str:
"""
Helper function to introspect the system and preset the range of max new tokens to generate.
-
- Parameters:
+
+ Parameters:
None
-
+
Returns:
(int): max new tokens to generate to be rendered on the frontend application.
"""
inf_mem = 0
for i in range(torch.cuda.device_count()):
inf_mem += torch.cuda.get_device_properties(i).total_memory
- gb = inf_mem/(2**30)
-
+ gb = inf_mem / (2 ** 30)
+
if gb >= 40:
return 512, 2048
elif gb >= 24:
@@ -212,90 +218,95 @@ def preset_max_tokens() -> str:
else:
return 256, 512
+
def clear_knowledge_base() -> bool:
"""
Helper function to run a script to clear out the vector database.
-
- Parameters:
+
+ Parameters:
None
-
+
Returns:
(bool): True if completed with exit code 0, else False.
"""
rc = subprocess.call("/bin/bash /project/code/scripts/clear-docs.sh", shell=True)
return True if rc == 0 else False
+
def start_local_server(local_model_id: str, local_model_quantize: str) -> bool:
"""
Helper function to run a script to start the local TGI inference server.
-
- Parameters:
+
+ Parameters:
local_model_id (str): The model name selected by the user
local_model_quantize (str): The quantization level selected by the user
-
+
Returns:
(bool): True if completed with exit code 0, else False.
"""
- rc = subprocess.call("/bin/bash /project/code/scripts/start-local.sh " + local_model_id + " " + local_model_quantize, shell=True)
+ rc = subprocess.call(
+ "/bin/bash /project/code/scripts/start-local.sh " + local_model_id + " " + local_model_quantize, shell=True)
return True if rc == 0 else False
+
def stop_local_server() -> bool:
"""
Helper function to run a script to stop the local TGI inference server.
-
- Parameters:
+
+ Parameters:
None
-
+
Returns:
(bool): True if completed with exit code 0, else False.
"""
rc = subprocess.call("/bin/bash /project/code/scripts/stop-local.sh", shell=True)
return True if rc == 0 else False
+
def nim_extract_model(input_string: str):
"""
A helper function to convert a container "registry/image:tag" into a model name for NIMs
- Parameters:
+ Parameters:
input_string: full container URL, eg. "nvcr.io/nim/meta/llama3-8b-instruct:latest"
-
+
Returns:
substring: Name of the model for OpenAI API spec, eg. "meta/llama3-8b-instruct"
"""
# Split the string by forward slashes
parts = input_string.split('/')
-
+
# If there are less than 3 parts, return the NIM playbook default model name
if len(parts) < 3:
return "meta/llama3-8b-instruct"
-
+
# Get the substring after the second-to-last forward slash
substring = parts[-2] + '/' + parts[-1]
-
+
# If a colon exists, split the substring at the first colon
if ':' in substring:
substring = substring.split(':')[0]
-
+
return substring
-def get_initial_metrics(metrics_history,
- response_num,
- inference_mode,
- nvcf_model_id,
- local_model_id,
- nim_local_model_id,
- is_local_nim,
- nim_model_id,
- retrieval_ftime,
- ttft):
+def get_initial_metrics(metrics_history,
+ response_num,
+ inference_mode,
+ nvcf_model_id,
+ local_model_id,
+ nim_local_model_id,
+ is_local_nim,
+ nim_model_id,
+ retrieval_ftime,
+ ttft):
"""
A helper function to generate the initial metrics as the response is being streamed
- Parameters:
+ Parameters:
metrics_history: dict of metrics previously calculated
response_num: number of responses generated so far
- inference_mode: user selected inference mode
+ inference_mode: user selected inference mode
nvcf_model_id: user selected cloud model endpoint
local_model_id: user selected local model id
nim_local_model_id: user selected local nim model id
@@ -303,42 +314,47 @@ def get_initial_metrics(metrics_history,
nim_model_id: user selected remote nim model id
retrieval_ftime: retrieval time in ms
ttft: time to first token in ms
-
+
Returns:
(Dict): Updated dict of calculated metrics
"""
return metrics_history.update({str(response_num): {"inference_mode": inference_to_config(inference_mode),
- "model": nvcf_model_id if inference_to_config(inference_mode)=="cloud" else
- (local_model_id if inference_to_config(inference_mode)=="local" else
- (nim_extract_model(nim_local_model_id) if inference_to_config(inference_mode)
- and is_local_nim else nim_model_id)),
- "Retrieval time": "N/A" if len(retrieval_ftime) == 0 else retrieval_ftime + "ms",
+ "model": nvcf_model_id if inference_to_config(
+ inference_mode) == "cloud" else
+ (local_model_id if inference_to_config(
+ inference_mode) == "local" else
+ (nim_extract_model(nim_local_model_id) if inference_to_config(
+ inference_mode)
+ and is_local_nim else nim_model_id)),
+ "Retrieval time": "N/A" if len(
+ retrieval_ftime) == 0 else retrieval_ftime + "ms",
"Time to First Token (TTFT)": ttft + "ms"}})
-def get_final_metrics(e2e_ftime,
- e2e_stime,
- ttft,
- retrieval_ftime,
- chunks):
+def get_final_metrics(e2e_ftime,
+ e2e_stime,
+ ttft,
+ retrieval_ftime,
+ chunks):
"""
A helper function to generate the initial metrics as the response is being streamed
- Parameters:
+ Parameters:
metrics_history: dict of metrics previously calculated
e2e_ftime: time, in seconds, or the end-to-end query
ttft: time to first token
retrieval_ftime: retrieval time in ms
tokens: number of tokens generated in response
response_num: current response number
-
+
Returns:
(Dict): Updated dict of calculated metrics
"""
e2e_ftime = str((e2e_ftime - e2e_stime) * 1000).split('.', 1)[0]
- gen_time = int(e2e_ftime) - int(ttft) if len(retrieval_ftime) == 0 else int(e2e_ftime) - int(ttft) - int(retrieval_ftime)
+ gen_time = int(e2e_ftime) - int(ttft) if len(retrieval_ftime) == 0 else int(e2e_ftime) - int(ttft) - int(
+ retrieval_ftime)
tokens = len(tiktoken.get_encoding('cl100k_base').encode(chunks))
- return str(gen_time), e2e_ftime, str(tokens), str(round(tokens / (gen_time / 1000), 1)), str(round((gen_time / tokens), 1))
-
\ No newline at end of file
+ return str(gen_time), e2e_ftime, str(tokens), str(round(tokens / (gen_time / 1000), 1)), str(
+ round((gen_time / tokens), 1))
diff --git a/code/chatui/remote_data_access.py b/code/chatui/remote_data_access.py
new file mode 100644
index 0000000..c29efd1
--- /dev/null
+++ b/code/chatui/remote_data_access.py
@@ -0,0 +1,229 @@
+import requests
+import json
+
+weather_stack_api_key = "e6cc3f97e4fdf37ac060175b62c5141a"
+weather_stack_base_url = "http://api.weatherstack.com/"
+
+news_api_key = "5cd6d4b1c26343f1a3e92024d2e2a407"
+news_api_base_url = "https://newsapi.org/v2/everything"
+
+news_api_params = {
+ "q": "agriculture",
+ "language": "en",
+ "sortBy": "relevancy",
+ "pageSize": 100,
+ "apiKey": news_api_key
+}
+
+jamaican_cities = [
+ "Kingston",
+ "Montego Bay",
+ "Spanish Town",
+ "Portmore",
+ "Mandeville",
+ "Ocho Rios",
+ "May Pen",
+ "Savanna-la-Mar",
+ "Port Antonio",
+ "Falmouth",
+ "Negril",
+ "Lucea",
+ "Black River",
+ "Morant Bay",
+ "Linstead",
+ "Old Harbour",
+ "Bog Walk",
+ "Brown's Town",
+ "Annotto Bay",
+ "Ewarton",
+ "Seaforth",
+ "Runaway Bay",
+ "St. Ann's Bay",
+ "Yallahs",
+ "Santa Cruz"
+]
+
+
+def get_agriculture_news():
+ data = requests.get(news_api_base_url, params=news_api_params).json()
+ return data
+
+
+def update_agriculture_news():
+ data = get_agriculture_news()
+ filename = "../agriculture_data.json"
+ with open(filename, 'w') as file:
+ json.dump(data, file, indent=4)
+
+
+def format_agriculture_news():
+ filename = '../agriculture_data.txt'
+ json_filename = '../agriculture_data.json'
+ filedata = []
+
+ try:
+ with open(json_filename, 'r') as file:
+ filedata = json.load(file)
+ except (FileNotFoundError, json.JSONDecodeError):
+ filedata = []
+
+ with open(filename, 'w') as file:
+ sect_index = 0
+ for article in filedata['articles']:
+ sect_index += 1
+ file.write(f'\nSection: {sect_index}\n\n')
+ for key, value in article.items():
+ if type(value) == str:
+ file.write(
+ f"{key}: {value.encode('UTF-8')}") # while combating possible unicode error since some content from the response is written in markdown format which may use backslash and break the string
+ elif type(value) == dict:
+ file.write(f'{key}:\n')
+ for k2, v2 in value.items():
+ file.write(f'{k2}: {v2}\n')
+ elif type(value) == list:
+ file.write(f"{key}: ")
+ for i in value:
+ file.write(f"{i}, ")
+ file.write("\n")
+ file.write('-' * 100)
+
+ with open(filename, 'r+') as file:
+ cfile = file.read()
+ file.seek(0)
+ file.write(f"This Document represents the current publicly available news relating to agriculture \n\n" + cfile)
+
+
+def get_current_weather(city="Kingston"):
+ data = requests.get(f"{weather_stack_base_url}current?access_key={weather_stack_api_key}&query={city}").json()
+ return data
+
+
+def get_weather_forecast(city="Kingston"):
+ data = requests.get(f"{weather_stack_base_url}forecast?access_key={weather_stack_api_key}&query={city}").json()
+ return data
+
+
+def update_current_weather():
+ filename = '../current_weather_data.json'
+ filedata = []
+
+ try:
+ with open(filename, 'r') as file:
+ filedata = json.load(file)
+ except (FileNotFoundError, json.JSONDecodeError):
+ filedata = []
+
+ for city in jamaican_cities:
+ data = get_current_weather(city)
+ filedata.append(data)
+
+ with open(filename, 'w') as file:
+ json.dump(filedata, file, indent=4)
+
+
+def update_weather_forecast():
+ filename = '../weather_forecast.json'
+ filedata = []
+
+ try:
+ with open(filename, 'r') as file:
+ filedata = json.load(file)
+ except (FileNotFoundError, json.JSONDecodeError):
+ filedata = []
+
+ for city in jamaican_cities:
+ data = get_weather_forecast(city)
+ filedata.append(data)
+
+ with open(filename, 'w') as file:
+ json.dump(filedata, file, indent=4)
+
+
+def format_current_weather_data():
+ filename = '../current_weather_data.txt'
+ json_filename = '../current_weather_data.json'
+ filedata = []
+
+ try:
+ with open(json_filename, 'r') as file:
+ filedata = json.load(file)
+ except (FileNotFoundError, json.JSONDecodeError):
+ filedata = []
+
+ with open(filename, 'w') as file:
+ sect_index = 0
+ for data in filedata:
+ sect_index += 1
+ file.write(f"Section {sect_index}\n")
+ for key, value in data.items():
+ if type(value) == str:
+ file.write(f"{key}: {value}")
+ elif type(value) == dict:
+ # print(key)
+ file.write(key + "\n")
+ for k2, v2 in value.items():
+ file.write(f"{k2}: {v2}\n")
+ elif type(value) == list:
+ file.write(f"{key}: ")
+ for i in value:
+ file.write(f"{i}, ")
+ file.write("\n")
+ file.write('-' * 100)
+
+ with open(filename, 'r+') as file:
+ cfile = file.read()
+ file.seek(0)
+ file.write(f"This Document Represents the current weather data of the following cities in Jamaica\n\n" + cfile)
+
+
+def format_weather_forecast():
+ filename = '../weather_forecast.txt'
+ json_filename = '../weather_forecast.json'
+ filedata = []
+
+ try:
+ with open(json_filename, 'r') as file:
+ filedata = json.load(file)
+ except (FileNotFoundError, json.JSONDecodeError):
+ filedata = []
+
+ with open(filename, 'w') as file:
+ sect_index = 0
+ for data in filedata:
+ sect_index += 1
+ file.write(f"Section {sect_index}\n")
+ for key, value in data.items():
+
+ if type(value) == str:
+ file.write(f"{key}: {value}")
+ elif type(value) == dict:
+ # print(key)
+ file.write(key + "\n")
+ for k2, v2 in value.items():
+ file.write(f"{k2}: {v2}\n")
+ elif type(value) == list:
+ file.write(f"{key}: ")
+ for i in value:
+ file.write(f"{i}, ")
+ file.write("\n")
+ file.write('-' * 100 + '\n\n')
+
+ with open(filename, 'r+') as file:
+ cfile = file.read()
+ file.seek(0)
+ file.write(
+ f"This Document Represents the current weather forecast data of the following cities in Jamaica\n\n" + cfile)
+
+
+def main():
+ update_current_weather() #pull current weather data for each city in Jamaica and store in json
+ update_weather_forecast() #pull current weather forecst data for each city in Jamaica and store in json
+ format_current_weather_data() #reformats and stores corresponding json data in raw text form
+ format_weather_forecast() #reformats and stores corresponding json data in raw text form
+
+ update_agriculture_news() #pull current publicly available news relating to agriculture and store in json
+ format_agriculture_news() # reformats and stores corresponding json data in raw text form
+
+
+if __name__ == "__main__":
+ main()
\ No newline at end of file
diff --git a/code/current_weather_data.json b/code/current_weather_data.json
new file mode 100644
index 0000000..d83a1f2
--- /dev/null
+++ b/code/current_weather_data.json
@@ -0,0 +1,2450 @@
+[
+ {
+ "request": {
+ "type": "City",
+ "query": "Kingston, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Kingston",
+ "country": "Jamaica",
+ "region": "Saint Andrew",
+ "lat": "18.000",
+ "lon": "-76.800",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 43,
+ "wind_dir": "NE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Montego Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Montego Bay",
+ "country": "Jamaica",
+ "region": "Saint James",
+ "lat": "18.467",
+ "lon": "-77.917",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 7,
+ "wind_degree": 223,
+ "wind_dir": "SW",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Spanish Town, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Spanish Town",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "17.983",
+ "lon": "-76.950",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 8,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Portmore, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Portmore",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "17.967",
+ "lon": "-76.867",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 54,
+ "wind_dir": "NE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Mandeville, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Mandeville",
+ "country": "Jamaica",
+ "region": "Manchester",
+ "lat": "18.033",
+ "lon": "-77.500",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly Cloudy "
+ ],
+ "wind_speed": 4,
+ "wind_degree": 58,
+ "wind_dir": "ENE",
+ "pressure": 1013,
+ "precip": 0,
+ "humidity": 96,
+ "cloudcover": 55,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Ocho Rios, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Ocho Rios",
+ "country": "Jamaica",
+ "region": "Saint Ann",
+ "lat": "18.417",
+ "lon": "-77.117",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 27,
+ "weather_code": 113,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png"
+ ],
+ "weather_descriptions": [
+ "Clear "
+ ],
+ "wind_speed": 7,
+ "wind_degree": 154,
+ "wind_dir": "SSE",
+ "pressure": 1012,
+ "precip": 0,
+ "humidity": 82,
+ "cloudcover": 2,
+ "feelslike": 31,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "May Pen, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "May Pen",
+ "country": "Jamaica",
+ "region": "Clarendon",
+ "lat": "17.967",
+ "lon": "-77.233",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 5,
+ "wind_degree": 20,
+ "wind_dir": "NNE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Savanna-La-Mar, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Savanna-La-Mar",
+ "country": "Jamaica",
+ "region": "Westmoreland",
+ "lat": "18.217",
+ "lon": "-78.133",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 9,
+ "wind_degree": 111,
+ "wind_dir": "ESE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Port Antonio, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Port Antonio",
+ "country": "Jamaica",
+ "region": "Portland",
+ "lat": "18.183",
+ "lon": "-76.467",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 11,
+ "wind_degree": 138,
+ "wind_dir": "SE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 41,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Falmouth, United States of America",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Falmouth",
+ "country": "United States of America",
+ "region": "Massachusetts",
+ "lat": "41.551",
+ "lon": "-70.615",
+ "timezone_id": "America/New_York",
+ "localtime": "2024-10-01 22:52",
+ "localtime_epoch": 1727823120,
+ "utc_offset": "-4.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 13,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 21,
+ "wind_degree": 79,
+ "wind_dir": "ENE",
+ "pressure": 1018,
+ "precip": 0,
+ "humidity": 94,
+ "cloudcover": 75,
+ "feelslike": 11,
+ "uv_index": 1,
+ "visibility": 16,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Negril, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Negril",
+ "country": "Jamaica",
+ "region": "Westmoreland",
+ "lat": "18.267",
+ "lon": "-78.350",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 9,
+ "wind_degree": 111,
+ "wind_dir": "ESE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Lucea, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Lucea",
+ "country": "Jamaica",
+ "region": "Hanover",
+ "lat": "18.450",
+ "lon": "-78.167",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 7,
+ "wind_degree": 223,
+ "wind_dir": "SW",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Black River, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Black River",
+ "country": "Jamaica",
+ "region": "Saint Elizabeth",
+ "lat": "18.017",
+ "lon": "-77.850",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 58,
+ "wind_dir": "ENE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 30,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Morant Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Morant Bay",
+ "country": "Jamaica",
+ "region": "Saint Thomas",
+ "lat": "17.883",
+ "lon": "-76.417",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 10,
+ "wind_degree": 111,
+ "wind_dir": "ESE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 40,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Linstead, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Linstead",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "18.133",
+ "lon": "-77.033",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 355,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Old Harbour, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Old Harbour",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "17.933",
+ "lon": "-77.117",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 5,
+ "wind_degree": 20,
+ "wind_dir": "NNE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Bog Walk, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Bog Walk",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "18.100",
+ "lon": "-77.017",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 355,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Brown's Green, United Kingdom",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Brown's Green",
+ "country": "United Kingdom",
+ "region": "West Midlands",
+ "lat": "52.521",
+ "lon": "-1.935",
+ "timezone_id": "Europe/London",
+ "localtime": "2024-10-02 03:52",
+ "localtime_epoch": 1727841120,
+ "utc_offset": "1.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 12,
+ "weather_code": 122,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Overcast"
+ ],
+ "wind_speed": 22,
+ "wind_degree": 6,
+ "wind_dir": "N",
+ "pressure": 1013,
+ "precip": 0.1,
+ "humidity": 100,
+ "cloudcover": 100,
+ "feelslike": 10,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Annotto Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Annotto Bay",
+ "country": "Jamaica",
+ "region": "Saint Mary",
+ "lat": "18.267",
+ "lon": "-76.767",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 49,
+ "wind_dir": "NE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Ewarton, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Ewarton",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "18.183",
+ "lon": "-77.083",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 355,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Seaforth, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Seaforth",
+ "country": "Jamaica",
+ "region": "Saint Thomas",
+ "lat": "17.950",
+ "lon": "-76.467",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 11,
+ "wind_degree": 138,
+ "wind_dir": "SE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 41,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Runaway Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Runaway Bay",
+ "country": "Jamaica",
+ "region": "Saint Ann",
+ "lat": "18.467",
+ "lon": "-77.333",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 113,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png"
+ ],
+ "weather_descriptions": [
+ "Clear "
+ ],
+ "wind_speed": 6,
+ "wind_degree": 194,
+ "wind_dir": "SSW",
+ "pressure": 1012,
+ "precip": 0,
+ "humidity": 80,
+ "cloudcover": 8,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "St Ann's, United Kingdom",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "St Ann's",
+ "country": "United Kingdom",
+ "region": "Nottinghamshire",
+ "lat": "52.959",
+ "lon": "-1.146",
+ "timezone_id": "Europe/London",
+ "localtime": "2024-10-02 03:52",
+ "localtime_epoch": 1727841120,
+ "utc_offset": "1.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 12,
+ "weather_code": 122,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Overcast"
+ ],
+ "wind_speed": 27,
+ "wind_degree": 14,
+ "wind_dir": "NNE",
+ "pressure": 1012,
+ "precip": 0.4,
+ "humidity": 94,
+ "cloudcover": 100,
+ "feelslike": 10,
+ "uv_index": 1,
+ "visibility": 8,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Yallahs, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Yallahs",
+ "country": "Jamaica",
+ "region": "Saint Thomas",
+ "lat": "17.867",
+ "lon": "-76.567",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 8,
+ "wind_degree": 79,
+ "wind_dir": "E",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 42,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Santa Cruz De La Sierra, Bolivia",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Santa Cruz De La Sierra",
+ "country": "Bolivia",
+ "region": "Santa Cruz",
+ "lat": "-17.800",
+ "lon": "-63.167",
+ "timezone_id": "America/La_Paz",
+ "localtime": "2024-10-01 22:52",
+ "localtime_epoch": 1727823120,
+ "utc_offset": "-4.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 27,
+ "weather_code": 122,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Smoke"
+ ],
+ "wind_speed": 19,
+ "wind_degree": 340,
+ "wind_dir": "NNW",
+ "pressure": 1007,
+ "precip": 0,
+ "humidity": 74,
+ "cloudcover": 0,
+ "feelslike": 26,
+ "uv_index": 1,
+ "visibility": 5,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Kingston, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Kingston",
+ "country": "Jamaica",
+ "region": "Saint Andrew",
+ "lat": "18.000",
+ "lon": "-76.800",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 43,
+ "wind_dir": "NE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Montego Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Montego Bay",
+ "country": "Jamaica",
+ "region": "Saint James",
+ "lat": "18.467",
+ "lon": "-77.917",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 7,
+ "wind_degree": 223,
+ "wind_dir": "SW",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Spanish Town, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Spanish Town",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "17.983",
+ "lon": "-76.950",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 8,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Portmore, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Portmore",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "17.967",
+ "lon": "-76.867",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 54,
+ "wind_dir": "NE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Mandeville, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Mandeville",
+ "country": "Jamaica",
+ "region": "Manchester",
+ "lat": "18.033",
+ "lon": "-77.500",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly Cloudy "
+ ],
+ "wind_speed": 4,
+ "wind_degree": 58,
+ "wind_dir": "ENE",
+ "pressure": 1013,
+ "precip": 0,
+ "humidity": 96,
+ "cloudcover": 55,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Ocho Rios, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Ocho Rios",
+ "country": "Jamaica",
+ "region": "Saint Ann",
+ "lat": "18.417",
+ "lon": "-77.117",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 27,
+ "weather_code": 113,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png"
+ ],
+ "weather_descriptions": [
+ "Clear "
+ ],
+ "wind_speed": 7,
+ "wind_degree": 154,
+ "wind_dir": "SSE",
+ "pressure": 1012,
+ "precip": 0,
+ "humidity": 82,
+ "cloudcover": 2,
+ "feelslike": 31,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "May Pen, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "May Pen",
+ "country": "Jamaica",
+ "region": "Clarendon",
+ "lat": "17.967",
+ "lon": "-77.233",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 5,
+ "wind_degree": 20,
+ "wind_dir": "NNE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Savanna-La-Mar, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Savanna-La-Mar",
+ "country": "Jamaica",
+ "region": "Westmoreland",
+ "lat": "18.217",
+ "lon": "-78.133",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 9,
+ "wind_degree": 111,
+ "wind_dir": "ESE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Port Antonio, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Port Antonio",
+ "country": "Jamaica",
+ "region": "Portland",
+ "lat": "18.183",
+ "lon": "-76.467",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 11,
+ "wind_degree": 138,
+ "wind_dir": "SE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 41,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Falmouth, United States of America",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Falmouth",
+ "country": "United States of America",
+ "region": "Massachusetts",
+ "lat": "41.551",
+ "lon": "-70.615",
+ "timezone_id": "America/New_York",
+ "localtime": "2024-10-01 22:52",
+ "localtime_epoch": 1727823120,
+ "utc_offset": "-4.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 13,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 21,
+ "wind_degree": 79,
+ "wind_dir": "ENE",
+ "pressure": 1018,
+ "precip": 0,
+ "humidity": 94,
+ "cloudcover": 75,
+ "feelslike": 11,
+ "uv_index": 1,
+ "visibility": 16,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Negril, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Negril",
+ "country": "Jamaica",
+ "region": "Westmoreland",
+ "lat": "18.267",
+ "lon": "-78.350",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 9,
+ "wind_degree": 111,
+ "wind_dir": "ESE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Lucea, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Lucea",
+ "country": "Jamaica",
+ "region": "Hanover",
+ "lat": "18.450",
+ "lon": "-78.167",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 7,
+ "wind_degree": 223,
+ "wind_dir": "SW",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Black River, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Black River",
+ "country": "Jamaica",
+ "region": "Saint Elizabeth",
+ "lat": "18.017",
+ "lon": "-77.850",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 58,
+ "wind_dir": "ENE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 30,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Morant Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Morant Bay",
+ "country": "Jamaica",
+ "region": "Saint Thomas",
+ "lat": "17.883",
+ "lon": "-76.417",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 10,
+ "wind_degree": 111,
+ "wind_dir": "ESE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 40,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Linstead, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Linstead",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "18.133",
+ "lon": "-77.033",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 355,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Old Harbour, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Old Harbour",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "17.933",
+ "lon": "-77.117",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 5,
+ "wind_degree": 20,
+ "wind_dir": "NNE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Bog Walk, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Bog Walk",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "18.100",
+ "lon": "-77.017",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 355,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Brown's Green, United Kingdom",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Brown's Green",
+ "country": "United Kingdom",
+ "region": "West Midlands",
+ "lat": "52.521",
+ "lon": "-1.935",
+ "timezone_id": "Europe/London",
+ "localtime": "2024-10-02 03:52",
+ "localtime_epoch": 1727841120,
+ "utc_offset": "1.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 12,
+ "weather_code": 122,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Overcast"
+ ],
+ "wind_speed": 22,
+ "wind_degree": 6,
+ "wind_dir": "N",
+ "pressure": 1013,
+ "precip": 0.1,
+ "humidity": 100,
+ "cloudcover": 100,
+ "feelslike": 10,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Annotto Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Annotto Bay",
+ "country": "Jamaica",
+ "region": "Saint Mary",
+ "lat": "18.267",
+ "lon": "-76.767",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 49,
+ "wind_dir": "NE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Ewarton, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Ewarton",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "18.183",
+ "lon": "-77.083",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 355,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Seaforth, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Seaforth",
+ "country": "Jamaica",
+ "region": "Saint Thomas",
+ "lat": "17.950",
+ "lon": "-76.467",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 11,
+ "wind_degree": 138,
+ "wind_dir": "SE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 41,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Runaway Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Runaway Bay",
+ "country": "Jamaica",
+ "region": "Saint Ann",
+ "lat": "18.467",
+ "lon": "-77.333",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 113,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png"
+ ],
+ "weather_descriptions": [
+ "Clear "
+ ],
+ "wind_speed": 6,
+ "wind_degree": 194,
+ "wind_dir": "SSW",
+ "pressure": 1012,
+ "precip": 0,
+ "humidity": 80,
+ "cloudcover": 8,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "St Ann's, United Kingdom",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "St Ann's",
+ "country": "United Kingdom",
+ "region": "Nottinghamshire",
+ "lat": "52.959",
+ "lon": "-1.146",
+ "timezone_id": "Europe/London",
+ "localtime": "2024-10-02 03:52",
+ "localtime_epoch": 1727841120,
+ "utc_offset": "1.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 12,
+ "weather_code": 122,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Overcast"
+ ],
+ "wind_speed": 27,
+ "wind_degree": 14,
+ "wind_dir": "NNE",
+ "pressure": 1012,
+ "precip": 0.4,
+ "humidity": 94,
+ "cloudcover": 100,
+ "feelslike": 10,
+ "uv_index": 1,
+ "visibility": 8,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Yallahs, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Yallahs",
+ "country": "Jamaica",
+ "region": "Saint Thomas",
+ "lat": "17.867",
+ "lon": "-76.567",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 8,
+ "wind_degree": 79,
+ "wind_dir": "E",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 42,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Santa Cruz De La Sierra, Bolivia",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Santa Cruz De La Sierra",
+ "country": "Bolivia",
+ "region": "Santa Cruz",
+ "lat": "-17.800",
+ "lon": "-63.167",
+ "timezone_id": "America/La_Paz",
+ "localtime": "2024-10-01 22:52",
+ "localtime_epoch": 1727823120,
+ "utc_offset": "-4.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 27,
+ "weather_code": 122,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Smoke"
+ ],
+ "wind_speed": 19,
+ "wind_degree": 340,
+ "wind_dir": "NNW",
+ "pressure": 1007,
+ "precip": 0,
+ "humidity": 74,
+ "cloudcover": 0,
+ "feelslike": 26,
+ "uv_index": 1,
+ "visibility": 5,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Kingston, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Kingston",
+ "country": "Jamaica",
+ "region": "Saint Andrew",
+ "lat": "18.000",
+ "lon": "-76.800",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 22:03",
+ "localtime_epoch": 1727820180,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "03:03 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 44,
+ "wind_dir": "NE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 44,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Montego Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Montego Bay",
+ "country": "Jamaica",
+ "region": "Saint James",
+ "lat": "18.467",
+ "lon": "-77.917",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 22:03",
+ "localtime_epoch": 1727820180,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "03:03 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 284,
+ "wind_dir": "WNW",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Spanish Town, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Spanish Town",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "17.983",
+ "lon": "-76.950",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 22:03",
+ "localtime_epoch": 1727820180,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "03:03 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 12,
+ "wind_dir": "NNE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Portmore, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Portmore",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "17.967",
+ "lon": "-76.867",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 22:03",
+ "localtime_epoch": 1727820180,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "03:03 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 5,
+ "wind_degree": 52,
+ "wind_dir": "NE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Mandeville, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Mandeville",
+ "country": "Jamaica",
+ "region": "Manchester",
+ "lat": "18.033",
+ "lon": "-77.500",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 22:03",
+ "localtime_epoch": 1727820180,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "03:03 AM",
+ "temperature": 24,
+ "weather_code": 143,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0006_mist.png"
+ ],
+ "weather_descriptions": [
+ "Mist"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 68,
+ "wind_dir": "ENE",
+ "pressure": 1013,
+ "precip": 0,
+ "humidity": 96,
+ "cloudcover": 60,
+ "feelslike": 27,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Ocho Rios, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Ocho Rios",
+ "country": "Jamaica",
+ "region": "Saint Ann",
+ "lat": "18.417",
+ "lon": "-77.117",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 22:03",
+ "localtime_epoch": 1727820180,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "03:03 AM",
+ "temperature": 26,
+ "weather_code": 113,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png"
+ ],
+ "weather_descriptions": [
+ "Clear "
+ ],
+ "wind_speed": 5,
+ "wind_degree": 165,
+ "wind_dir": "SSE",
+ "pressure": 1012,
+ "precip": 0,
+ "humidity": 83,
+ "cloudcover": 1,
+ "feelslike": 30,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ }
+]
\ No newline at end of file
diff --git a/code/current_weather_data.txt b/code/current_weather_data.txt
new file mode 100644
index 0000000..3227f92
--- /dev/null
+++ b/code/current_weather_data.txt
@@ -0,0 +1,2152 @@
+This Document Represents the current weather data of the following cities in Jamaica
+
+Section 1
+request
+type: City
+query: Kingston, Jamaica
+language: en
+unit: m
+
+location
+name: Kingston
+country: Jamaica
+region: Saint Andrew
+lat: 18.000
+lon: -76.800
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 43
+wind_dir: NE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 2
+request
+type: City
+query: Montego Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Montego Bay
+country: Jamaica
+region: Saint James
+lat: 18.467
+lon: -77.917
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 7
+wind_degree: 223
+wind_dir: SW
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 3
+request
+type: City
+query: Spanish Town, Jamaica
+language: en
+unit: m
+
+location
+name: Spanish Town
+country: Jamaica
+region: Saint Catherine
+lat: 17.983
+lon: -76.950
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 8
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 4
+request
+type: City
+query: Portmore, Jamaica
+language: en
+unit: m
+
+location
+name: Portmore
+country: Jamaica
+region: Saint Catherine
+lat: 17.967
+lon: -76.867
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 54
+wind_dir: NE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 5
+request
+type: City
+query: Mandeville, Jamaica
+language: en
+unit: m
+
+location
+name: Mandeville
+country: Jamaica
+region: Manchester
+lat: 18.033
+lon: -77.500
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly Cloudy ']
+wind_speed: 4
+wind_degree: 58
+wind_dir: ENE
+pressure: 1013
+precip: 0
+humidity: 96
+cloudcover: 55
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 6
+request
+type: City
+query: Ocho Rios, Jamaica
+language: en
+unit: m
+
+location
+name: Ocho Rios
+country: Jamaica
+region: Saint Ann
+lat: 18.417
+lon: -77.117
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 27
+weather_code: 113
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png']
+weather_descriptions: ['Clear ']
+wind_speed: 7
+wind_degree: 154
+wind_dir: SSE
+pressure: 1012
+precip: 0
+humidity: 82
+cloudcover: 2
+feelslike: 31
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 7
+request
+type: City
+query: May Pen, Jamaica
+language: en
+unit: m
+
+location
+name: May Pen
+country: Jamaica
+region: Clarendon
+lat: 17.967
+lon: -77.233
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 5
+wind_degree: 20
+wind_dir: NNE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 8
+request
+type: City
+query: Savanna-La-Mar, Jamaica
+language: en
+unit: m
+
+location
+name: Savanna-La-Mar
+country: Jamaica
+region: Westmoreland
+lat: 18.217
+lon: -78.133
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 9
+wind_degree: 111
+wind_dir: ESE
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 9
+request
+type: City
+query: Port Antonio, Jamaica
+language: en
+unit: m
+
+location
+name: Port Antonio
+country: Jamaica
+region: Portland
+lat: 18.183
+lon: -76.467
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 11
+wind_degree: 138
+wind_dir: SE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 41
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 10
+request
+type: City
+query: Falmouth, United States of America
+language: en
+unit: m
+
+location
+name: Falmouth
+country: United States of America
+region: Massachusetts
+lat: 41.551
+lon: -70.615
+timezone_id: America/New_York
+localtime: 2024-10-01 22:52
+localtime_epoch: 1727823120
+utc_offset: -4.0
+
+current
+observation_time: 02:52 AM
+temperature: 13
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 21
+wind_degree: 79
+wind_dir: ENE
+pressure: 1018
+precip: 0
+humidity: 94
+cloudcover: 75
+feelslike: 11
+uv_index: 1
+visibility: 16
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 11
+request
+type: City
+query: Negril, Jamaica
+language: en
+unit: m
+
+location
+name: Negril
+country: Jamaica
+region: Westmoreland
+lat: 18.267
+lon: -78.350
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 9
+wind_degree: 111
+wind_dir: ESE
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 12
+request
+type: City
+query: Lucea, Jamaica
+language: en
+unit: m
+
+location
+name: Lucea
+country: Jamaica
+region: Hanover
+lat: 18.450
+lon: -78.167
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 7
+wind_degree: 223
+wind_dir: SW
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 13
+request
+type: City
+query: Black River, Jamaica
+language: en
+unit: m
+
+location
+name: Black River
+country: Jamaica
+region: Saint Elizabeth
+lat: 18.017
+lon: -77.850
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 58
+wind_dir: ENE
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 30
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 14
+request
+type: City
+query: Morant Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Morant Bay
+country: Jamaica
+region: Saint Thomas
+lat: 17.883
+lon: -76.417
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 10
+wind_degree: 111
+wind_dir: ESE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 40
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 15
+request
+type: City
+query: Linstead, Jamaica
+language: en
+unit: m
+
+location
+name: Linstead
+country: Jamaica
+region: Saint Catherine
+lat: 18.133
+lon: -77.033
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 355
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 16
+request
+type: City
+query: Old Harbour, Jamaica
+language: en
+unit: m
+
+location
+name: Old Harbour
+country: Jamaica
+region: Saint Catherine
+lat: 17.933
+lon: -77.117
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 5
+wind_degree: 20
+wind_dir: NNE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 17
+request
+type: City
+query: Bog Walk, Jamaica
+language: en
+unit: m
+
+location
+name: Bog Walk
+country: Jamaica
+region: Saint Catherine
+lat: 18.100
+lon: -77.017
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 355
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 18
+request
+type: City
+query: Brown's Green, United Kingdom
+language: en
+unit: m
+
+location
+name: Brown's Green
+country: United Kingdom
+region: West Midlands
+lat: 52.521
+lon: -1.935
+timezone_id: Europe/London
+localtime: 2024-10-02 03:52
+localtime_epoch: 1727841120
+utc_offset: 1.0
+
+current
+observation_time: 02:52 AM
+temperature: 12
+weather_code: 122
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Overcast']
+wind_speed: 22
+wind_degree: 6
+wind_dir: N
+pressure: 1013
+precip: 0.1
+humidity: 100
+cloudcover: 100
+feelslike: 10
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 19
+request
+type: City
+query: Annotto Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Annotto Bay
+country: Jamaica
+region: Saint Mary
+lat: 18.267
+lon: -76.767
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 49
+wind_dir: NE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 20
+request
+type: City
+query: Ewarton, Jamaica
+language: en
+unit: m
+
+location
+name: Ewarton
+country: Jamaica
+region: Saint Catherine
+lat: 18.183
+lon: -77.083
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 355
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 21
+request
+type: City
+query: Seaforth, Jamaica
+language: en
+unit: m
+
+location
+name: Seaforth
+country: Jamaica
+region: Saint Thomas
+lat: 17.950
+lon: -76.467
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 11
+wind_degree: 138
+wind_dir: SE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 41
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 22
+request
+type: City
+query: Runaway Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Runaway Bay
+country: Jamaica
+region: Saint Ann
+lat: 18.467
+lon: -77.333
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 113
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png']
+weather_descriptions: ['Clear ']
+wind_speed: 6
+wind_degree: 194
+wind_dir: SSW
+pressure: 1012
+precip: 0
+humidity: 80
+cloudcover: 8
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 23
+request
+type: City
+query: St Ann's, United Kingdom
+language: en
+unit: m
+
+location
+name: St Ann's
+country: United Kingdom
+region: Nottinghamshire
+lat: 52.959
+lon: -1.146
+timezone_id: Europe/London
+localtime: 2024-10-02 03:52
+localtime_epoch: 1727841120
+utc_offset: 1.0
+
+current
+observation_time: 02:52 AM
+temperature: 12
+weather_code: 122
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Overcast']
+wind_speed: 27
+wind_degree: 14
+wind_dir: NNE
+pressure: 1012
+precip: 0.4
+humidity: 94
+cloudcover: 100
+feelslike: 10
+uv_index: 1
+visibility: 8
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 24
+request
+type: City
+query: Yallahs, Jamaica
+language: en
+unit: m
+
+location
+name: Yallahs
+country: Jamaica
+region: Saint Thomas
+lat: 17.867
+lon: -76.567
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 8
+wind_degree: 79
+wind_dir: E
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 42
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 25
+request
+type: City
+query: Santa Cruz De La Sierra, Bolivia
+language: en
+unit: m
+
+location
+name: Santa Cruz De La Sierra
+country: Bolivia
+region: Santa Cruz
+lat: -17.800
+lon: -63.167
+timezone_id: America/La_Paz
+localtime: 2024-10-01 22:52
+localtime_epoch: 1727823120
+utc_offset: -4.0
+
+current
+observation_time: 02:52 AM
+temperature: 27
+weather_code: 122
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Smoke']
+wind_speed: 19
+wind_degree: 340
+wind_dir: NNW
+pressure: 1007
+precip: 0
+humidity: 74
+cloudcover: 0
+feelslike: 26
+uv_index: 1
+visibility: 5
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 26
+request
+type: City
+query: Kingston, Jamaica
+language: en
+unit: m
+
+location
+name: Kingston
+country: Jamaica
+region: Saint Andrew
+lat: 18.000
+lon: -76.800
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 43
+wind_dir: NE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 27
+request
+type: City
+query: Montego Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Montego Bay
+country: Jamaica
+region: Saint James
+lat: 18.467
+lon: -77.917
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 7
+wind_degree: 223
+wind_dir: SW
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 28
+request
+type: City
+query: Spanish Town, Jamaica
+language: en
+unit: m
+
+location
+name: Spanish Town
+country: Jamaica
+region: Saint Catherine
+lat: 17.983
+lon: -76.950
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 8
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 29
+request
+type: City
+query: Portmore, Jamaica
+language: en
+unit: m
+
+location
+name: Portmore
+country: Jamaica
+region: Saint Catherine
+lat: 17.967
+lon: -76.867
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 54
+wind_dir: NE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 30
+request
+type: City
+query: Mandeville, Jamaica
+language: en
+unit: m
+
+location
+name: Mandeville
+country: Jamaica
+region: Manchester
+lat: 18.033
+lon: -77.500
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly Cloudy ']
+wind_speed: 4
+wind_degree: 58
+wind_dir: ENE
+pressure: 1013
+precip: 0
+humidity: 96
+cloudcover: 55
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 31
+request
+type: City
+query: Ocho Rios, Jamaica
+language: en
+unit: m
+
+location
+name: Ocho Rios
+country: Jamaica
+region: Saint Ann
+lat: 18.417
+lon: -77.117
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 27
+weather_code: 113
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png']
+weather_descriptions: ['Clear ']
+wind_speed: 7
+wind_degree: 154
+wind_dir: SSE
+pressure: 1012
+precip: 0
+humidity: 82
+cloudcover: 2
+feelslike: 31
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 32
+request
+type: City
+query: May Pen, Jamaica
+language: en
+unit: m
+
+location
+name: May Pen
+country: Jamaica
+region: Clarendon
+lat: 17.967
+lon: -77.233
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 5
+wind_degree: 20
+wind_dir: NNE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 33
+request
+type: City
+query: Savanna-La-Mar, Jamaica
+language: en
+unit: m
+
+location
+name: Savanna-La-Mar
+country: Jamaica
+region: Westmoreland
+lat: 18.217
+lon: -78.133
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 9
+wind_degree: 111
+wind_dir: ESE
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 34
+request
+type: City
+query: Port Antonio, Jamaica
+language: en
+unit: m
+
+location
+name: Port Antonio
+country: Jamaica
+region: Portland
+lat: 18.183
+lon: -76.467
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 11
+wind_degree: 138
+wind_dir: SE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 41
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 35
+request
+type: City
+query: Falmouth, United States of America
+language: en
+unit: m
+
+location
+name: Falmouth
+country: United States of America
+region: Massachusetts
+lat: 41.551
+lon: -70.615
+timezone_id: America/New_York
+localtime: 2024-10-01 22:52
+localtime_epoch: 1727823120
+utc_offset: -4.0
+
+current
+observation_time: 02:52 AM
+temperature: 13
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 21
+wind_degree: 79
+wind_dir: ENE
+pressure: 1018
+precip: 0
+humidity: 94
+cloudcover: 75
+feelslike: 11
+uv_index: 1
+visibility: 16
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 36
+request
+type: City
+query: Negril, Jamaica
+language: en
+unit: m
+
+location
+name: Negril
+country: Jamaica
+region: Westmoreland
+lat: 18.267
+lon: -78.350
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 9
+wind_degree: 111
+wind_dir: ESE
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 37
+request
+type: City
+query: Lucea, Jamaica
+language: en
+unit: m
+
+location
+name: Lucea
+country: Jamaica
+region: Hanover
+lat: 18.450
+lon: -78.167
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 7
+wind_degree: 223
+wind_dir: SW
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 38
+request
+type: City
+query: Black River, Jamaica
+language: en
+unit: m
+
+location
+name: Black River
+country: Jamaica
+region: Saint Elizabeth
+lat: 18.017
+lon: -77.850
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 58
+wind_dir: ENE
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 30
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 39
+request
+type: City
+query: Morant Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Morant Bay
+country: Jamaica
+region: Saint Thomas
+lat: 17.883
+lon: -76.417
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 10
+wind_degree: 111
+wind_dir: ESE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 40
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 40
+request
+type: City
+query: Linstead, Jamaica
+language: en
+unit: m
+
+location
+name: Linstead
+country: Jamaica
+region: Saint Catherine
+lat: 18.133
+lon: -77.033
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 355
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 41
+request
+type: City
+query: Old Harbour, Jamaica
+language: en
+unit: m
+
+location
+name: Old Harbour
+country: Jamaica
+region: Saint Catherine
+lat: 17.933
+lon: -77.117
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 5
+wind_degree: 20
+wind_dir: NNE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 42
+request
+type: City
+query: Bog Walk, Jamaica
+language: en
+unit: m
+
+location
+name: Bog Walk
+country: Jamaica
+region: Saint Catherine
+lat: 18.100
+lon: -77.017
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 355
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 43
+request
+type: City
+query: Brown's Green, United Kingdom
+language: en
+unit: m
+
+location
+name: Brown's Green
+country: United Kingdom
+region: West Midlands
+lat: 52.521
+lon: -1.935
+timezone_id: Europe/London
+localtime: 2024-10-02 03:52
+localtime_epoch: 1727841120
+utc_offset: 1.0
+
+current
+observation_time: 02:52 AM
+temperature: 12
+weather_code: 122
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Overcast']
+wind_speed: 22
+wind_degree: 6
+wind_dir: N
+pressure: 1013
+precip: 0.1
+humidity: 100
+cloudcover: 100
+feelslike: 10
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 44
+request
+type: City
+query: Annotto Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Annotto Bay
+country: Jamaica
+region: Saint Mary
+lat: 18.267
+lon: -76.767
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 49
+wind_dir: NE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 45
+request
+type: City
+query: Ewarton, Jamaica
+language: en
+unit: m
+
+location
+name: Ewarton
+country: Jamaica
+region: Saint Catherine
+lat: 18.183
+lon: -77.083
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 355
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 46
+request
+type: City
+query: Seaforth, Jamaica
+language: en
+unit: m
+
+location
+name: Seaforth
+country: Jamaica
+region: Saint Thomas
+lat: 17.950
+lon: -76.467
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 11
+wind_degree: 138
+wind_dir: SE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 41
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 47
+request
+type: City
+query: Runaway Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Runaway Bay
+country: Jamaica
+region: Saint Ann
+lat: 18.467
+lon: -77.333
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 113
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png']
+weather_descriptions: ['Clear ']
+wind_speed: 6
+wind_degree: 194
+wind_dir: SSW
+pressure: 1012
+precip: 0
+humidity: 80
+cloudcover: 8
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 48
+request
+type: City
+query: St Ann's, United Kingdom
+language: en
+unit: m
+
+location
+name: St Ann's
+country: United Kingdom
+region: Nottinghamshire
+lat: 52.959
+lon: -1.146
+timezone_id: Europe/London
+localtime: 2024-10-02 03:52
+localtime_epoch: 1727841120
+utc_offset: 1.0
+
+current
+observation_time: 02:52 AM
+temperature: 12
+weather_code: 122
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Overcast']
+wind_speed: 27
+wind_degree: 14
+wind_dir: NNE
+pressure: 1012
+precip: 0.4
+humidity: 94
+cloudcover: 100
+feelslike: 10
+uv_index: 1
+visibility: 8
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 49
+request
+type: City
+query: Yallahs, Jamaica
+language: en
+unit: m
+
+location
+name: Yallahs
+country: Jamaica
+region: Saint Thomas
+lat: 17.867
+lon: -76.567
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 8
+wind_degree: 79
+wind_dir: E
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 42
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 50
+request
+type: City
+query: Santa Cruz De La Sierra, Bolivia
+language: en
+unit: m
+
+location
+name: Santa Cruz De La Sierra
+country: Bolivia
+region: Santa Cruz
+lat: -17.800
+lon: -63.167
+timezone_id: America/La_Paz
+localtime: 2024-10-01 22:52
+localtime_epoch: 1727823120
+utc_offset: -4.0
+
+current
+observation_time: 02:52 AM
+temperature: 27
+weather_code: 122
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Smoke']
+wind_speed: 19
+wind_degree: 340
+wind_dir: NNW
+pressure: 1007
+precip: 0
+humidity: 74
+cloudcover: 0
+feelslike: 26
+uv_index: 1
+visibility: 5
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 51
+request
+type: City
+query: Kingston, Jamaica
+language: en
+unit: m
+
+location
+name: Kingston
+country: Jamaica
+region: Saint Andrew
+lat: 18.000
+lon: -76.800
+timezone_id: America/Jamaica
+localtime: 2024-10-01 22:03
+localtime_epoch: 1727820180
+utc_offset: -5.0
+
+current
+observation_time: 03:03 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 44
+wind_dir: NE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 44
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 52
+request
+type: City
+query: Montego Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Montego Bay
+country: Jamaica
+region: Saint James
+lat: 18.467
+lon: -77.917
+timezone_id: America/Jamaica
+localtime: 2024-10-01 22:03
+localtime_epoch: 1727820180
+utc_offset: -5.0
+
+current
+observation_time: 03:03 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 284
+wind_dir: WNW
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 53
+request
+type: City
+query: Spanish Town, Jamaica
+language: en
+unit: m
+
+location
+name: Spanish Town
+country: Jamaica
+region: Saint Catherine
+lat: 17.983
+lon: -76.950
+timezone_id: America/Jamaica
+localtime: 2024-10-01 22:03
+localtime_epoch: 1727820180
+utc_offset: -5.0
+
+current
+observation_time: 03:03 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 12
+wind_dir: NNE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 54
+request
+type: City
+query: Portmore, Jamaica
+language: en
+unit: m
+
+location
+name: Portmore
+country: Jamaica
+region: Saint Catherine
+lat: 17.967
+lon: -76.867
+timezone_id: America/Jamaica
+localtime: 2024-10-01 22:03
+localtime_epoch: 1727820180
+utc_offset: -5.0
+
+current
+observation_time: 03:03 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 5
+wind_degree: 52
+wind_dir: NE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 55
+request
+type: City
+query: Mandeville, Jamaica
+language: en
+unit: m
+
+location
+name: Mandeville
+country: Jamaica
+region: Manchester
+lat: 18.033
+lon: -77.500
+timezone_id: America/Jamaica
+localtime: 2024-10-01 22:03
+localtime_epoch: 1727820180
+utc_offset: -5.0
+
+current
+observation_time: 03:03 AM
+temperature: 24
+weather_code: 143
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0006_mist.png']
+weather_descriptions: ['Mist']
+wind_speed: 4
+wind_degree: 68
+wind_dir: ENE
+pressure: 1013
+precip: 0
+humidity: 96
+cloudcover: 60
+feelslike: 27
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 56
+request
+type: City
+query: Ocho Rios, Jamaica
+language: en
+unit: m
+
+location
+name: Ocho Rios
+country: Jamaica
+region: Saint Ann
+lat: 18.417
+lon: -77.117
+timezone_id: America/Jamaica
+localtime: 2024-10-01 22:03
+localtime_epoch: 1727820180
+utc_offset: -5.0
+
+current
+observation_time: 03:03 AM
+temperature: 26
+weather_code: 113
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png']
+weather_descriptions: ['Clear ']
+wind_speed: 5
+wind_degree: 165
+wind_dir: SSE
+pressure: 1012
+precip: 0
+humidity: 83
+cloudcover: 1
+feelslike: 30
+uv_index: 1
+visibility: 10
+is_day: no
+
+----------------------------------------------------------------------------------------------------Section 57
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 58
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 59
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 60
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 61
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 62
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 63
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 64
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 65
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 66
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 67
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 68
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 69
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 70
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 71
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 72
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 73
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 74
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------Section 75
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
\ No newline at end of file
diff --git "a/code/data_source/agriculture_data/Jamaica-Final-Draft-Agriculture-Sector-Plan (1-40)-\342\200\246.pdf" "b/code/data_source/agriculture_data/Jamaica-Final-Draft-Agriculture-Sector-Plan (1-40)-\342\200\246.pdf"
new file mode 100644
index 0000000..8291d2b
Binary files /dev/null and "b/code/data_source/agriculture_data/Jamaica-Final-Draft-Agriculture-Sector-Plan (1-40)-\342\200\246.pdf" differ
diff --git "a/code/data_source/agriculture_data/Jamaica-Final-Draft-Agriculture-Sector-Plan(41-82)-\342\200\246.pdf" "b/code/data_source/agriculture_data/Jamaica-Final-Draft-Agriculture-Sector-Plan(41-82)-\342\200\246.pdf"
new file mode 100644
index 0000000..dd142d0
Binary files /dev/null and "b/code/data_source/agriculture_data/Jamaica-Final-Draft-Agriculture-Sector-Plan(41-82)-\342\200\246.pdf" differ
diff --git "a/code/data_source/agriculture_data/Jamaica-Final-Draft-Agriculture-Sector-Plan(83-112)-\342\200\246.pdf" "b/code/data_source/agriculture_data/Jamaica-Final-Draft-Agriculture-Sector-Plan(83-112)-\342\200\246.pdf"
new file mode 100644
index 0000000..37a7158
Binary files /dev/null and "b/code/data_source/agriculture_data/Jamaica-Final-Draft-Agriculture-Sector-Plan(83-112)-\342\200\246.pdf" differ
diff --git a/code/media/anime-ant.jpeg b/code/media/anime-ant.jpeg
new file mode 100644
index 0000000..d22a8a0
Binary files /dev/null and b/code/media/anime-ant.jpeg differ
diff --git a/code/media/doctor-ant.jpeg b/code/media/doctor-ant.jpeg
new file mode 100644
index 0000000..c8376f7
Binary files /dev/null and b/code/media/doctor-ant.jpeg differ
diff --git a/code/media/farmer-ant.jpeg b/code/media/farmer-ant.jpeg
new file mode 100644
index 0000000..1c45bc9
Binary files /dev/null and b/code/media/farmer-ant.jpeg differ
diff --git a/code/weather_forecast.json b/code/weather_forecast.json
new file mode 100644
index 0000000..dc343ae
--- /dev/null
+++ b/code/weather_forecast.json
@@ -0,0 +1,3252 @@
+[
+ {
+ "request": {
+ "type": "City",
+ "query": "Kingston, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Kingston",
+ "country": "Jamaica",
+ "region": "Saint Andrew",
+ "lat": "18.000",
+ "lon": "-76.800",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 43,
+ "wind_dir": "NE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:56 PM",
+ "moonrise": "04:13 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 26,
+ "maxtemp": 32,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Montego Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Montego Bay",
+ "country": "Jamaica",
+ "region": "Saint James",
+ "lat": "18.467",
+ "lon": "-77.917",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 7,
+ "wind_degree": 223,
+ "wind_dir": "SW",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:02 AM",
+ "sunset": "06:00 PM",
+ "moonrise": "04:17 AM",
+ "moonset": "04:58 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 27,
+ "maxtemp": 30,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 11.3,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Spanish Town, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Spanish Town",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "17.983",
+ "lon": "-76.950",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 8,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:57 PM",
+ "moonrise": "04:14 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 25,
+ "maxtemp": 35,
+ "avgtemp": 30,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Portmore, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Portmore",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "17.967",
+ "lon": "-76.867",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 54,
+ "wind_dir": "NE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:56 PM",
+ "moonrise": "04:13 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 26,
+ "maxtemp": 33,
+ "avgtemp": 30,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Mandeville, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Mandeville",
+ "country": "Jamaica",
+ "region": "Manchester",
+ "lat": "18.033",
+ "lon": "-77.500",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly Cloudy "
+ ],
+ "wind_speed": 4,
+ "wind_degree": 58,
+ "wind_dir": "ENE",
+ "pressure": 1013,
+ "precip": 0,
+ "humidity": 96,
+ "cloudcover": 55,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:00 AM",
+ "sunset": "05:59 PM",
+ "moonrise": "04:16 AM",
+ "moonset": "04:56 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 25,
+ "maxtemp": 31,
+ "avgtemp": 28,
+ "totalsnow": 0,
+ "sunhour": 11.5,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Ocho Rios, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Ocho Rios",
+ "country": "Jamaica",
+ "region": "Saint Ann",
+ "lat": "18.417",
+ "lon": "-77.117",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 27,
+ "weather_code": 113,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png"
+ ],
+ "weather_descriptions": [
+ "Clear "
+ ],
+ "wind_speed": 7,
+ "wind_degree": 154,
+ "wind_dir": "SSE",
+ "pressure": 1012,
+ "precip": 0,
+ "humidity": 82,
+ "cloudcover": 2,
+ "feelslike": 31,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:59 AM",
+ "sunset": "05:57 PM",
+ "moonrise": "04:14 AM",
+ "moonset": "04:54 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 26,
+ "maxtemp": 32,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 11.8,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "May Pen, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "May Pen",
+ "country": "Jamaica",
+ "region": "Clarendon",
+ "lat": "17.967",
+ "lon": "-77.233",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 5,
+ "wind_degree": 20,
+ "wind_dir": "NNE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:59 AM",
+ "sunset": "05:58 PM",
+ "moonrise": "04:15 AM",
+ "moonset": "04:54 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 24,
+ "maxtemp": 32,
+ "avgtemp": 28,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Savanna-La-Mar, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Savanna-La-Mar",
+ "country": "Jamaica",
+ "region": "Westmoreland",
+ "lat": "18.217",
+ "lon": "-78.133",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 9,
+ "wind_degree": 111,
+ "wind_dir": "ESE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:04 AM",
+ "sunset": "06:02 PM",
+ "moonrise": "04:19 AM",
+ "moonset": "04:59 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 26,
+ "maxtemp": 30,
+ "avgtemp": 28,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Port Antonio, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Port Antonio",
+ "country": "Jamaica",
+ "region": "Portland",
+ "lat": "18.183",
+ "lon": "-76.467",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 11,
+ "wind_degree": 138,
+ "wind_dir": "SE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 41,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:56 AM",
+ "sunset": "05:55 PM",
+ "moonrise": "04:11 AM",
+ "moonset": "04:51 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 27,
+ "maxtemp": 31,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Falmouth, United States of America",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Falmouth",
+ "country": "United States of America",
+ "region": "Massachusetts",
+ "lat": "41.551",
+ "lon": "-70.615",
+ "timezone_id": "America/New_York",
+ "localtime": "2024-10-01 22:52",
+ "localtime_epoch": 1727823120,
+ "utc_offset": "-4.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 13,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 21,
+ "wind_degree": 79,
+ "wind_dir": "ENE",
+ "pressure": 1018,
+ "precip": 0,
+ "humidity": 94,
+ "cloudcover": 75,
+ "feelslike": 11,
+ "uv_index": 1,
+ "visibility": 16,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:39 AM",
+ "sunset": "06:25 PM",
+ "moonrise": "04:25 AM",
+ "moonset": "05:42 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 14,
+ "maxtemp": 16,
+ "avgtemp": 15,
+ "totalsnow": 0,
+ "sunhour": 9,
+ "uv_index": 5
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Negril, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Negril",
+ "country": "Jamaica",
+ "region": "Westmoreland",
+ "lat": "18.267",
+ "lon": "-78.350",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 9,
+ "wind_degree": 111,
+ "wind_dir": "ESE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:04 AM",
+ "sunset": "06:02 PM",
+ "moonrise": "04:19 AM",
+ "moonset": "04:59 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 26,
+ "maxtemp": 30,
+ "avgtemp": 28,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Lucea, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Lucea",
+ "country": "Jamaica",
+ "region": "Hanover",
+ "lat": "18.450",
+ "lon": "-78.167",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 7,
+ "wind_degree": 223,
+ "wind_dir": "SW",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:02 AM",
+ "sunset": "06:00 PM",
+ "moonrise": "04:17 AM",
+ "moonset": "04:58 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 27,
+ "maxtemp": 30,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 11.3,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Black River, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Black River",
+ "country": "Jamaica",
+ "region": "Saint Elizabeth",
+ "lat": "18.017",
+ "lon": "-77.850",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 58,
+ "wind_dir": "ENE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 30,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:00 AM",
+ "sunset": "05:59 PM",
+ "moonrise": "04:16 AM",
+ "moonset": "04:56 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 25,
+ "maxtemp": 31,
+ "avgtemp": 28,
+ "totalsnow": 0,
+ "sunhour": 11.5,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Morant Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Morant Bay",
+ "country": "Jamaica",
+ "region": "Saint Thomas",
+ "lat": "17.883",
+ "lon": "-76.417",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 10,
+ "wind_degree": 111,
+ "wind_dir": "ESE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 40,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:55 AM",
+ "sunset": "05:54 PM",
+ "moonrise": "04:11 AM",
+ "moonset": "04:50 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 28,
+ "maxtemp": 29,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 11.5,
+ "uv_index": 10
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Linstead, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Linstead",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "18.133",
+ "lon": "-77.033",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 355,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:57 PM",
+ "moonrise": "04:14 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 24,
+ "maxtemp": 35,
+ "avgtemp": 30,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Old Harbour, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Old Harbour",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "17.933",
+ "lon": "-77.117",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 5,
+ "wind_degree": 20,
+ "wind_dir": "NNE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:59 AM",
+ "sunset": "05:58 PM",
+ "moonrise": "04:15 AM",
+ "moonset": "04:54 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 24,
+ "maxtemp": 32,
+ "avgtemp": 28,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Bog Walk, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Bog Walk",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "18.100",
+ "lon": "-77.017",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 355,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:57 PM",
+ "moonrise": "04:14 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 24,
+ "maxtemp": 35,
+ "avgtemp": 30,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Brown's Green, United Kingdom",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Brown's Green",
+ "country": "United Kingdom",
+ "region": "West Midlands",
+ "lat": "52.521",
+ "lon": "-1.935",
+ "timezone_id": "Europe/London",
+ "localtime": "2024-10-02 03:52",
+ "localtime_epoch": 1727841120,
+ "utc_offset": "1.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 12,
+ "weather_code": 122,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Overcast"
+ ],
+ "wind_speed": 22,
+ "wind_degree": 6,
+ "wind_dir": "N",
+ "pressure": 1013,
+ "precip": 0.1,
+ "humidity": 100,
+ "cloudcover": 100,
+ "feelslike": 10,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-10-01": {
+ "date": "2024-10-01",
+ "date_epoch": 1727740800,
+ "astro": {
+ "sunrise": "07:10 AM",
+ "sunset": "06:44 PM",
+ "moonrise": "05:33 AM",
+ "moonset": "06:25 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 3
+ },
+ "mintemp": 10,
+ "maxtemp": 11,
+ "avgtemp": 11,
+ "totalsnow": 0,
+ "sunhour": 8.3,
+ "uv_index": 1
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Annotto Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Annotto Bay",
+ "country": "Jamaica",
+ "region": "Saint Mary",
+ "lat": "18.267",
+ "lon": "-76.767",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 49,
+ "wind_dir": "NE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:56 PM",
+ "moonrise": "04:13 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 26,
+ "maxtemp": 32,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Ewarton, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Ewarton",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "18.183",
+ "lon": "-77.083",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 355,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:57 PM",
+ "moonrise": "04:14 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 24,
+ "maxtemp": 35,
+ "avgtemp": 30,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Seaforth, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Seaforth",
+ "country": "Jamaica",
+ "region": "Saint Thomas",
+ "lat": "17.950",
+ "lon": "-76.467",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 11,
+ "wind_degree": 138,
+ "wind_dir": "SE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 41,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:56 AM",
+ "sunset": "05:55 PM",
+ "moonrise": "04:11 AM",
+ "moonset": "04:51 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 27,
+ "maxtemp": 31,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Runaway Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Runaway Bay",
+ "country": "Jamaica",
+ "region": "Saint Ann",
+ "lat": "18.467",
+ "lon": "-77.333",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 113,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png"
+ ],
+ "weather_descriptions": [
+ "Clear "
+ ],
+ "wind_speed": 6,
+ "wind_degree": 194,
+ "wind_dir": "SSW",
+ "pressure": 1012,
+ "precip": 0,
+ "humidity": 80,
+ "cloudcover": 8,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:00 AM",
+ "sunset": "05:58 PM",
+ "moonrise": "04:15 AM",
+ "moonset": "04:55 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 26,
+ "maxtemp": 31,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 11.6,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "St Ann's, United Kingdom",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "St Ann's",
+ "country": "United Kingdom",
+ "region": "Nottinghamshire",
+ "lat": "52.959",
+ "lon": "-1.146",
+ "timezone_id": "Europe/London",
+ "localtime": "2024-10-02 03:52",
+ "localtime_epoch": 1727841120,
+ "utc_offset": "1.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 12,
+ "weather_code": 122,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Overcast"
+ ],
+ "wind_speed": 27,
+ "wind_degree": 14,
+ "wind_dir": "NNE",
+ "pressure": 1012,
+ "precip": 0.4,
+ "humidity": 94,
+ "cloudcover": 100,
+ "feelslike": 10,
+ "uv_index": 1,
+ "visibility": 8,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-10-01": {
+ "date": "2024-10-01",
+ "date_epoch": 1727740800,
+ "astro": {
+ "sunrise": "07:07 AM",
+ "sunset": "06:40 PM",
+ "moonrise": "05:29 AM",
+ "moonset": "06:21 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 3
+ },
+ "mintemp": 11,
+ "maxtemp": 12,
+ "avgtemp": 12,
+ "totalsnow": 0,
+ "sunhour": 8.3,
+ "uv_index": 1
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Yallahs, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Yallahs",
+ "country": "Jamaica",
+ "region": "Saint Thomas",
+ "lat": "17.867",
+ "lon": "-76.567",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 8,
+ "wind_degree": 79,
+ "wind_dir": "E",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 42,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:56 PM",
+ "moonrise": "04:13 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 27,
+ "maxtemp": 31,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Santa Cruz De La Sierra, Bolivia",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Santa Cruz De La Sierra",
+ "country": "Bolivia",
+ "region": "Santa Cruz",
+ "lat": "-17.800",
+ "lon": "-63.167",
+ "timezone_id": "America/La_Paz",
+ "localtime": "2024-10-01 22:52",
+ "localtime_epoch": 1727823120,
+ "utc_offset": "-4.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 27,
+ "weather_code": 122,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Smoke"
+ ],
+ "wind_speed": 19,
+ "wind_degree": 340,
+ "wind_dir": "NNW",
+ "pressure": 1007,
+ "precip": 0,
+ "humidity": 74,
+ "cloudcover": 0,
+ "feelslike": 26,
+ "uv_index": 1,
+ "visibility": 5,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:55 AM",
+ "sunset": "06:10 PM",
+ "moonrise": "04:42 AM",
+ "moonset": "04:39 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 25,
+ "maxtemp": 39,
+ "avgtemp": 32,
+ "totalsnow": 0,
+ "sunhour": 12.6,
+ "uv_index": 10
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Kingston, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Kingston",
+ "country": "Jamaica",
+ "region": "Saint Andrew",
+ "lat": "18.000",
+ "lon": "-76.800",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 43,
+ "wind_dir": "NE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:56 PM",
+ "moonrise": "04:13 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 26,
+ "maxtemp": 32,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Montego Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Montego Bay",
+ "country": "Jamaica",
+ "region": "Saint James",
+ "lat": "18.467",
+ "lon": "-77.917",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 7,
+ "wind_degree": 223,
+ "wind_dir": "SW",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:02 AM",
+ "sunset": "06:00 PM",
+ "moonrise": "04:17 AM",
+ "moonset": "04:58 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 27,
+ "maxtemp": 30,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 11.3,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Spanish Town, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Spanish Town",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "17.983",
+ "lon": "-76.950",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 8,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:57 PM",
+ "moonrise": "04:14 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 25,
+ "maxtemp": 35,
+ "avgtemp": 30,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Portmore, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Portmore",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "17.967",
+ "lon": "-76.867",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 54,
+ "wind_dir": "NE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:56 PM",
+ "moonrise": "04:13 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 26,
+ "maxtemp": 33,
+ "avgtemp": 30,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Mandeville, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Mandeville",
+ "country": "Jamaica",
+ "region": "Manchester",
+ "lat": "18.033",
+ "lon": "-77.500",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly Cloudy "
+ ],
+ "wind_speed": 4,
+ "wind_degree": 58,
+ "wind_dir": "ENE",
+ "pressure": 1013,
+ "precip": 0,
+ "humidity": 96,
+ "cloudcover": 55,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:00 AM",
+ "sunset": "05:59 PM",
+ "moonrise": "04:16 AM",
+ "moonset": "04:56 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 25,
+ "maxtemp": 31,
+ "avgtemp": 28,
+ "totalsnow": 0,
+ "sunhour": 11.5,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Ocho Rios, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Ocho Rios",
+ "country": "Jamaica",
+ "region": "Saint Ann",
+ "lat": "18.417",
+ "lon": "-77.117",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 27,
+ "weather_code": 113,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png"
+ ],
+ "weather_descriptions": [
+ "Clear "
+ ],
+ "wind_speed": 7,
+ "wind_degree": 154,
+ "wind_dir": "SSE",
+ "pressure": 1012,
+ "precip": 0,
+ "humidity": 82,
+ "cloudcover": 2,
+ "feelslike": 31,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:59 AM",
+ "sunset": "05:57 PM",
+ "moonrise": "04:14 AM",
+ "moonset": "04:54 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 26,
+ "maxtemp": 32,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 11.8,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "May Pen, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "May Pen",
+ "country": "Jamaica",
+ "region": "Clarendon",
+ "lat": "17.967",
+ "lon": "-77.233",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 5,
+ "wind_degree": 20,
+ "wind_dir": "NNE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:59 AM",
+ "sunset": "05:58 PM",
+ "moonrise": "04:15 AM",
+ "moonset": "04:54 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 24,
+ "maxtemp": 32,
+ "avgtemp": 28,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Savanna-La-Mar, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Savanna-La-Mar",
+ "country": "Jamaica",
+ "region": "Westmoreland",
+ "lat": "18.217",
+ "lon": "-78.133",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 9,
+ "wind_degree": 111,
+ "wind_dir": "ESE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:04 AM",
+ "sunset": "06:02 PM",
+ "moonrise": "04:19 AM",
+ "moonset": "04:59 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 26,
+ "maxtemp": 30,
+ "avgtemp": 28,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Port Antonio, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Port Antonio",
+ "country": "Jamaica",
+ "region": "Portland",
+ "lat": "18.183",
+ "lon": "-76.467",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 11,
+ "wind_degree": 138,
+ "wind_dir": "SE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 41,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:56 AM",
+ "sunset": "05:55 PM",
+ "moonrise": "04:11 AM",
+ "moonset": "04:51 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 27,
+ "maxtemp": 31,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Falmouth, United States of America",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Falmouth",
+ "country": "United States of America",
+ "region": "Massachusetts",
+ "lat": "41.551",
+ "lon": "-70.615",
+ "timezone_id": "America/New_York",
+ "localtime": "2024-10-01 22:52",
+ "localtime_epoch": 1727823120,
+ "utc_offset": "-4.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 13,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 21,
+ "wind_degree": 79,
+ "wind_dir": "ENE",
+ "pressure": 1018,
+ "precip": 0,
+ "humidity": 94,
+ "cloudcover": 75,
+ "feelslike": 11,
+ "uv_index": 1,
+ "visibility": 16,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:39 AM",
+ "sunset": "06:25 PM",
+ "moonrise": "04:25 AM",
+ "moonset": "05:42 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 14,
+ "maxtemp": 16,
+ "avgtemp": 15,
+ "totalsnow": 0,
+ "sunhour": 9,
+ "uv_index": 5
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Negril, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Negril",
+ "country": "Jamaica",
+ "region": "Westmoreland",
+ "lat": "18.267",
+ "lon": "-78.350",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 9,
+ "wind_degree": 111,
+ "wind_dir": "ESE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:04 AM",
+ "sunset": "06:02 PM",
+ "moonrise": "04:19 AM",
+ "moonset": "04:59 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 26,
+ "maxtemp": 30,
+ "avgtemp": 28,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Lucea, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Lucea",
+ "country": "Jamaica",
+ "region": "Hanover",
+ "lat": "18.450",
+ "lon": "-78.167",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 7,
+ "wind_degree": 223,
+ "wind_dir": "SW",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:02 AM",
+ "sunset": "06:00 PM",
+ "moonrise": "04:17 AM",
+ "moonset": "04:58 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 27,
+ "maxtemp": 30,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 11.3,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Black River, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Black River",
+ "country": "Jamaica",
+ "region": "Saint Elizabeth",
+ "lat": "18.017",
+ "lon": "-77.850",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 58,
+ "wind_dir": "ENE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 84,
+ "cloudcover": 25,
+ "feelslike": 30,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:00 AM",
+ "sunset": "05:59 PM",
+ "moonrise": "04:16 AM",
+ "moonset": "04:56 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 25,
+ "maxtemp": 31,
+ "avgtemp": 28,
+ "totalsnow": 0,
+ "sunhour": 11.5,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Morant Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Morant Bay",
+ "country": "Jamaica",
+ "region": "Saint Thomas",
+ "lat": "17.883",
+ "lon": "-76.417",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 10,
+ "wind_degree": 111,
+ "wind_dir": "ESE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 40,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:55 AM",
+ "sunset": "05:54 PM",
+ "moonrise": "04:11 AM",
+ "moonset": "04:50 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 28,
+ "maxtemp": 29,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 11.5,
+ "uv_index": 10
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Linstead, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Linstead",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "18.133",
+ "lon": "-77.033",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 355,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:57 PM",
+ "moonrise": "04:14 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 24,
+ "maxtemp": 35,
+ "avgtemp": 30,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Old Harbour, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Old Harbour",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "17.933",
+ "lon": "-77.117",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 5,
+ "wind_degree": 20,
+ "wind_dir": "NNE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:59 AM",
+ "sunset": "05:58 PM",
+ "moonrise": "04:15 AM",
+ "moonset": "04:54 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 24,
+ "maxtemp": 32,
+ "avgtemp": 28,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Bog Walk, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Bog Walk",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "18.100",
+ "lon": "-77.017",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 355,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:57 PM",
+ "moonrise": "04:14 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 24,
+ "maxtemp": 35,
+ "avgtemp": 30,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Brown's Green, United Kingdom",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Brown's Green",
+ "country": "United Kingdom",
+ "region": "West Midlands",
+ "lat": "52.521",
+ "lon": "-1.935",
+ "timezone_id": "Europe/London",
+ "localtime": "2024-10-02 03:52",
+ "localtime_epoch": 1727841120,
+ "utc_offset": "1.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 12,
+ "weather_code": 122,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Overcast"
+ ],
+ "wind_speed": 22,
+ "wind_degree": 6,
+ "wind_dir": "N",
+ "pressure": 1013,
+ "precip": 0.1,
+ "humidity": 100,
+ "cloudcover": 100,
+ "feelslike": 10,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-10-01": {
+ "date": "2024-10-01",
+ "date_epoch": 1727740800,
+ "astro": {
+ "sunrise": "07:10 AM",
+ "sunset": "06:44 PM",
+ "moonrise": "05:33 AM",
+ "moonset": "06:25 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 3
+ },
+ "mintemp": 10,
+ "maxtemp": 11,
+ "avgtemp": 11,
+ "totalsnow": 0,
+ "sunhour": 8.3,
+ "uv_index": 1
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Annotto Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Annotto Bay",
+ "country": "Jamaica",
+ "region": "Saint Mary",
+ "lat": "18.267",
+ "lon": "-76.767",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 49,
+ "wind_dir": "NE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:56 PM",
+ "moonrise": "04:13 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 26,
+ "maxtemp": 32,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Ewarton, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Ewarton",
+ "country": "Jamaica",
+ "region": "Saint Catherine",
+ "lat": "18.183",
+ "lon": "-77.083",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 4,
+ "wind_degree": 355,
+ "wind_dir": "N",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 43,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:57 PM",
+ "moonrise": "04:14 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 24,
+ "maxtemp": 35,
+ "avgtemp": 30,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Seaforth, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Seaforth",
+ "country": "Jamaica",
+ "region": "Saint Thomas",
+ "lat": "17.950",
+ "lon": "-76.467",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 11,
+ "wind_degree": 138,
+ "wind_dir": "SE",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 41,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:56 AM",
+ "sunset": "05:55 PM",
+ "moonrise": "04:11 AM",
+ "moonset": "04:51 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 27,
+ "maxtemp": 31,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Runaway Bay, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Runaway Bay",
+ "country": "Jamaica",
+ "region": "Saint Ann",
+ "lat": "18.467",
+ "lon": "-77.333",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 26,
+ "weather_code": 113,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png"
+ ],
+ "weather_descriptions": [
+ "Clear "
+ ],
+ "wind_speed": 6,
+ "wind_degree": 194,
+ "wind_dir": "SSW",
+ "pressure": 1012,
+ "precip": 0,
+ "humidity": 80,
+ "cloudcover": 8,
+ "feelslike": 29,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "06:00 AM",
+ "sunset": "05:58 PM",
+ "moonrise": "04:15 AM",
+ "moonset": "04:55 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 26,
+ "maxtemp": 31,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 11.6,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "St Ann's, United Kingdom",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "St Ann's",
+ "country": "United Kingdom",
+ "region": "Nottinghamshire",
+ "lat": "52.959",
+ "lon": "-1.146",
+ "timezone_id": "Europe/London",
+ "localtime": "2024-10-02 03:52",
+ "localtime_epoch": 1727841120,
+ "utc_offset": "1.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 12,
+ "weather_code": 122,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Overcast"
+ ],
+ "wind_speed": 27,
+ "wind_degree": 14,
+ "wind_dir": "NNE",
+ "pressure": 1012,
+ "precip": 0.4,
+ "humidity": 94,
+ "cloudcover": 100,
+ "feelslike": 10,
+ "uv_index": 1,
+ "visibility": 8,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-10-01": {
+ "date": "2024-10-01",
+ "date_epoch": 1727740800,
+ "astro": {
+ "sunrise": "07:07 AM",
+ "sunset": "06:40 PM",
+ "moonrise": "05:29 AM",
+ "moonset": "06:21 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 3
+ },
+ "mintemp": 11,
+ "maxtemp": 12,
+ "avgtemp": 12,
+ "totalsnow": 0,
+ "sunhour": 8.3,
+ "uv_index": 1
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Yallahs, Jamaica",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Yallahs",
+ "country": "Jamaica",
+ "region": "Saint Thomas",
+ "lat": "17.867",
+ "lon": "-76.567",
+ "timezone_id": "America/Jamaica",
+ "localtime": "2024-10-01 21:52",
+ "localtime_epoch": 1727819520,
+ "utc_offset": "-5.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 30,
+ "weather_code": 116,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Partly cloudy"
+ ],
+ "wind_speed": 8,
+ "wind_degree": 79,
+ "wind_dir": "E",
+ "pressure": 1011,
+ "precip": 0,
+ "humidity": 79,
+ "cloudcover": 25,
+ "feelslike": 42,
+ "uv_index": 1,
+ "visibility": 10,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:58 AM",
+ "sunset": "05:56 PM",
+ "moonrise": "04:13 AM",
+ "moonset": "04:53 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 27,
+ "maxtemp": 31,
+ "avgtemp": 29,
+ "totalsnow": 0,
+ "sunhour": 12,
+ "uv_index": 11
+ }
+ }
+ },
+ {
+ "request": {
+ "type": "City",
+ "query": "Santa Cruz De La Sierra, Bolivia",
+ "language": "en",
+ "unit": "m"
+ },
+ "location": {
+ "name": "Santa Cruz De La Sierra",
+ "country": "Bolivia",
+ "region": "Santa Cruz",
+ "lat": "-17.800",
+ "lon": "-63.167",
+ "timezone_id": "America/La_Paz",
+ "localtime": "2024-10-01 22:52",
+ "localtime_epoch": 1727823120,
+ "utc_offset": "-4.0"
+ },
+ "current": {
+ "observation_time": "02:52 AM",
+ "temperature": 27,
+ "weather_code": 122,
+ "weather_icons": [
+ "https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
+ ],
+ "weather_descriptions": [
+ "Smoke"
+ ],
+ "wind_speed": 19,
+ "wind_degree": 340,
+ "wind_dir": "NNW",
+ "pressure": 1007,
+ "precip": 0,
+ "humidity": 74,
+ "cloudcover": 0,
+ "feelslike": 26,
+ "uv_index": 1,
+ "visibility": 5,
+ "is_day": "no"
+ },
+ "forecast": {
+ "2024-09-30": {
+ "date": "2024-09-30",
+ "date_epoch": 1727654400,
+ "astro": {
+ "sunrise": "05:55 AM",
+ "sunset": "06:10 PM",
+ "moonrise": "04:42 AM",
+ "moonset": "04:39 PM",
+ "moon_phase": "Waning Crescent",
+ "moon_illumination": 7
+ },
+ "mintemp": 25,
+ "maxtemp": 39,
+ "avgtemp": 32,
+ "totalsnow": 0,
+ "sunhour": 12.6,
+ "uv_index": 10
+ }
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ },
+ {
+ "success": false,
+ "error": {
+ "code": 104,
+ "type": "usage_limit_reached",
+ "info": "Your monthly usage limit has been reached. Please upgrade your Subscription Plan."
+ }
+ }
+]
\ No newline at end of file
diff --git a/code/weather_forecast.txt b/code/weather_forecast.txt
new file mode 100644
index 0000000..0bec110
--- /dev/null
+++ b/code/weather_forecast.txt
@@ -0,0 +1,2277 @@
+This Document Represents the current weather forecast data of the following cities in Jamaica
+
+Section 1
+request
+type: City
+query: Kingston, Jamaica
+language: en
+unit: m
+
+location
+name: Kingston
+country: Jamaica
+region: Saint Andrew
+lat: 18.000
+lon: -76.800
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 43
+wind_dir: NE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:56 PM', 'moonrise': '04:13 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 26, 'maxtemp': 32, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 2
+request
+type: City
+query: Montego Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Montego Bay
+country: Jamaica
+region: Saint James
+lat: 18.467
+lon: -77.917
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 7
+wind_degree: 223
+wind_dir: SW
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:02 AM', 'sunset': '06:00 PM', 'moonrise': '04:17 AM', 'moonset': '04:58 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 27, 'maxtemp': 30, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 11.3, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 3
+request
+type: City
+query: Spanish Town, Jamaica
+language: en
+unit: m
+
+location
+name: Spanish Town
+country: Jamaica
+region: Saint Catherine
+lat: 17.983
+lon: -76.950
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 8
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:57 PM', 'moonrise': '04:14 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 25, 'maxtemp': 35, 'avgtemp': 30, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 4
+request
+type: City
+query: Portmore, Jamaica
+language: en
+unit: m
+
+location
+name: Portmore
+country: Jamaica
+region: Saint Catherine
+lat: 17.967
+lon: -76.867
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 54
+wind_dir: NE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:56 PM', 'moonrise': '04:13 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 26, 'maxtemp': 33, 'avgtemp': 30, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 5
+request
+type: City
+query: Mandeville, Jamaica
+language: en
+unit: m
+
+location
+name: Mandeville
+country: Jamaica
+region: Manchester
+lat: 18.033
+lon: -77.500
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly Cloudy ']
+wind_speed: 4
+wind_degree: 58
+wind_dir: ENE
+pressure: 1013
+precip: 0
+humidity: 96
+cloudcover: 55
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:00 AM', 'sunset': '05:59 PM', 'moonrise': '04:16 AM', 'moonset': '04:56 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 25, 'maxtemp': 31, 'avgtemp': 28, 'totalsnow': 0, 'sunhour': 11.5, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 6
+request
+type: City
+query: Ocho Rios, Jamaica
+language: en
+unit: m
+
+location
+name: Ocho Rios
+country: Jamaica
+region: Saint Ann
+lat: 18.417
+lon: -77.117
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 27
+weather_code: 113
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png']
+weather_descriptions: ['Clear ']
+wind_speed: 7
+wind_degree: 154
+wind_dir: SSE
+pressure: 1012
+precip: 0
+humidity: 82
+cloudcover: 2
+feelslike: 31
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:59 AM', 'sunset': '05:57 PM', 'moonrise': '04:14 AM', 'moonset': '04:54 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 26, 'maxtemp': 32, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 11.8, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 7
+request
+type: City
+query: May Pen, Jamaica
+language: en
+unit: m
+
+location
+name: May Pen
+country: Jamaica
+region: Clarendon
+lat: 17.967
+lon: -77.233
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 5
+wind_degree: 20
+wind_dir: NNE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:59 AM', 'sunset': '05:58 PM', 'moonrise': '04:15 AM', 'moonset': '04:54 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 24, 'maxtemp': 32, 'avgtemp': 28, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 8
+request
+type: City
+query: Savanna-La-Mar, Jamaica
+language: en
+unit: m
+
+location
+name: Savanna-La-Mar
+country: Jamaica
+region: Westmoreland
+lat: 18.217
+lon: -78.133
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 9
+wind_degree: 111
+wind_dir: ESE
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:04 AM', 'sunset': '06:02 PM', 'moonrise': '04:19 AM', 'moonset': '04:59 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 26, 'maxtemp': 30, 'avgtemp': 28, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 9
+request
+type: City
+query: Port Antonio, Jamaica
+language: en
+unit: m
+
+location
+name: Port Antonio
+country: Jamaica
+region: Portland
+lat: 18.183
+lon: -76.467
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 11
+wind_degree: 138
+wind_dir: SE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 41
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:56 AM', 'sunset': '05:55 PM', 'moonrise': '04:11 AM', 'moonset': '04:51 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 27, 'maxtemp': 31, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 10
+request
+type: City
+query: Falmouth, United States of America
+language: en
+unit: m
+
+location
+name: Falmouth
+country: United States of America
+region: Massachusetts
+lat: 41.551
+lon: -70.615
+timezone_id: America/New_York
+localtime: 2024-10-01 22:52
+localtime_epoch: 1727823120
+utc_offset: -4.0
+
+current
+observation_time: 02:52 AM
+temperature: 13
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 21
+wind_degree: 79
+wind_dir: ENE
+pressure: 1018
+precip: 0
+humidity: 94
+cloudcover: 75
+feelslike: 11
+uv_index: 1
+visibility: 16
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:39 AM', 'sunset': '06:25 PM', 'moonrise': '04:25 AM', 'moonset': '05:42 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 14, 'maxtemp': 16, 'avgtemp': 15, 'totalsnow': 0, 'sunhour': 9, 'uv_index': 5}
+
+----------------------------------------------------------------------------------------------------
+
+Section 11
+request
+type: City
+query: Negril, Jamaica
+language: en
+unit: m
+
+location
+name: Negril
+country: Jamaica
+region: Westmoreland
+lat: 18.267
+lon: -78.350
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 9
+wind_degree: 111
+wind_dir: ESE
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:04 AM', 'sunset': '06:02 PM', 'moonrise': '04:19 AM', 'moonset': '04:59 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 26, 'maxtemp': 30, 'avgtemp': 28, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 12
+request
+type: City
+query: Lucea, Jamaica
+language: en
+unit: m
+
+location
+name: Lucea
+country: Jamaica
+region: Hanover
+lat: 18.450
+lon: -78.167
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 7
+wind_degree: 223
+wind_dir: SW
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:02 AM', 'sunset': '06:00 PM', 'moonrise': '04:17 AM', 'moonset': '04:58 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 27, 'maxtemp': 30, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 11.3, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 13
+request
+type: City
+query: Black River, Jamaica
+language: en
+unit: m
+
+location
+name: Black River
+country: Jamaica
+region: Saint Elizabeth
+lat: 18.017
+lon: -77.850
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 58
+wind_dir: ENE
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 30
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:00 AM', 'sunset': '05:59 PM', 'moonrise': '04:16 AM', 'moonset': '04:56 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 25, 'maxtemp': 31, 'avgtemp': 28, 'totalsnow': 0, 'sunhour': 11.5, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 14
+request
+type: City
+query: Morant Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Morant Bay
+country: Jamaica
+region: Saint Thomas
+lat: 17.883
+lon: -76.417
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 10
+wind_degree: 111
+wind_dir: ESE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 40
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:55 AM', 'sunset': '05:54 PM', 'moonrise': '04:11 AM', 'moonset': '04:50 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 28, 'maxtemp': 29, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 11.5, 'uv_index': 10}
+
+----------------------------------------------------------------------------------------------------
+
+Section 15
+request
+type: City
+query: Linstead, Jamaica
+language: en
+unit: m
+
+location
+name: Linstead
+country: Jamaica
+region: Saint Catherine
+lat: 18.133
+lon: -77.033
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 355
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:57 PM', 'moonrise': '04:14 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 24, 'maxtemp': 35, 'avgtemp': 30, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 16
+request
+type: City
+query: Old Harbour, Jamaica
+language: en
+unit: m
+
+location
+name: Old Harbour
+country: Jamaica
+region: Saint Catherine
+lat: 17.933
+lon: -77.117
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 5
+wind_degree: 20
+wind_dir: NNE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:59 AM', 'sunset': '05:58 PM', 'moonrise': '04:15 AM', 'moonset': '04:54 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 24, 'maxtemp': 32, 'avgtemp': 28, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 17
+request
+type: City
+query: Bog Walk, Jamaica
+language: en
+unit: m
+
+location
+name: Bog Walk
+country: Jamaica
+region: Saint Catherine
+lat: 18.100
+lon: -77.017
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 355
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:57 PM', 'moonrise': '04:14 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 24, 'maxtemp': 35, 'avgtemp': 30, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 18
+request
+type: City
+query: Brown's Green, United Kingdom
+language: en
+unit: m
+
+location
+name: Brown's Green
+country: United Kingdom
+region: West Midlands
+lat: 52.521
+lon: -1.935
+timezone_id: Europe/London
+localtime: 2024-10-02 03:52
+localtime_epoch: 1727841120
+utc_offset: 1.0
+
+current
+observation_time: 02:52 AM
+temperature: 12
+weather_code: 122
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Overcast']
+wind_speed: 22
+wind_degree: 6
+wind_dir: N
+pressure: 1013
+precip: 0.1
+humidity: 100
+cloudcover: 100
+feelslike: 10
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-10-01: {'date': '2024-10-01', 'date_epoch': 1727740800, 'astro': {'sunrise': '07:10 AM', 'sunset': '06:44 PM', 'moonrise': '05:33 AM', 'moonset': '06:25 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 3}, 'mintemp': 10, 'maxtemp': 11, 'avgtemp': 11, 'totalsnow': 0, 'sunhour': 8.3, 'uv_index': 1}
+
+----------------------------------------------------------------------------------------------------
+
+Section 19
+request
+type: City
+query: Annotto Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Annotto Bay
+country: Jamaica
+region: Saint Mary
+lat: 18.267
+lon: -76.767
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 49
+wind_dir: NE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:56 PM', 'moonrise': '04:13 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 26, 'maxtemp': 32, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 20
+request
+type: City
+query: Ewarton, Jamaica
+language: en
+unit: m
+
+location
+name: Ewarton
+country: Jamaica
+region: Saint Catherine
+lat: 18.183
+lon: -77.083
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 355
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:57 PM', 'moonrise': '04:14 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 24, 'maxtemp': 35, 'avgtemp': 30, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 21
+request
+type: City
+query: Seaforth, Jamaica
+language: en
+unit: m
+
+location
+name: Seaforth
+country: Jamaica
+region: Saint Thomas
+lat: 17.950
+lon: -76.467
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 11
+wind_degree: 138
+wind_dir: SE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 41
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:56 AM', 'sunset': '05:55 PM', 'moonrise': '04:11 AM', 'moonset': '04:51 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 27, 'maxtemp': 31, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 22
+request
+type: City
+query: Runaway Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Runaway Bay
+country: Jamaica
+region: Saint Ann
+lat: 18.467
+lon: -77.333
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 113
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png']
+weather_descriptions: ['Clear ']
+wind_speed: 6
+wind_degree: 194
+wind_dir: SSW
+pressure: 1012
+precip: 0
+humidity: 80
+cloudcover: 8
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:00 AM', 'sunset': '05:58 PM', 'moonrise': '04:15 AM', 'moonset': '04:55 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 26, 'maxtemp': 31, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 11.6, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 23
+request
+type: City
+query: St Ann's, United Kingdom
+language: en
+unit: m
+
+location
+name: St Ann's
+country: United Kingdom
+region: Nottinghamshire
+lat: 52.959
+lon: -1.146
+timezone_id: Europe/London
+localtime: 2024-10-02 03:52
+localtime_epoch: 1727841120
+utc_offset: 1.0
+
+current
+observation_time: 02:52 AM
+temperature: 12
+weather_code: 122
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Overcast']
+wind_speed: 27
+wind_degree: 14
+wind_dir: NNE
+pressure: 1012
+precip: 0.4
+humidity: 94
+cloudcover: 100
+feelslike: 10
+uv_index: 1
+visibility: 8
+is_day: no
+
+forecast
+2024-10-01: {'date': '2024-10-01', 'date_epoch': 1727740800, 'astro': {'sunrise': '07:07 AM', 'sunset': '06:40 PM', 'moonrise': '05:29 AM', 'moonset': '06:21 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 3}, 'mintemp': 11, 'maxtemp': 12, 'avgtemp': 12, 'totalsnow': 0, 'sunhour': 8.3, 'uv_index': 1}
+
+----------------------------------------------------------------------------------------------------
+
+Section 24
+request
+type: City
+query: Yallahs, Jamaica
+language: en
+unit: m
+
+location
+name: Yallahs
+country: Jamaica
+region: Saint Thomas
+lat: 17.867
+lon: -76.567
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 8
+wind_degree: 79
+wind_dir: E
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 42
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:56 PM', 'moonrise': '04:13 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 27, 'maxtemp': 31, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 25
+request
+type: City
+query: Santa Cruz De La Sierra, Bolivia
+language: en
+unit: m
+
+location
+name: Santa Cruz De La Sierra
+country: Bolivia
+region: Santa Cruz
+lat: -17.800
+lon: -63.167
+timezone_id: America/La_Paz
+localtime: 2024-10-01 22:52
+localtime_epoch: 1727823120
+utc_offset: -4.0
+
+current
+observation_time: 02:52 AM
+temperature: 27
+weather_code: 122
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Smoke']
+wind_speed: 19
+wind_degree: 340
+wind_dir: NNW
+pressure: 1007
+precip: 0
+humidity: 74
+cloudcover: 0
+feelslike: 26
+uv_index: 1
+visibility: 5
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:55 AM', 'sunset': '06:10 PM', 'moonrise': '04:42 AM', 'moonset': '04:39 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 25, 'maxtemp': 39, 'avgtemp': 32, 'totalsnow': 0, 'sunhour': 12.6, 'uv_index': 10}
+
+----------------------------------------------------------------------------------------------------
+
+Section 26
+request
+type: City
+query: Kingston, Jamaica
+language: en
+unit: m
+
+location
+name: Kingston
+country: Jamaica
+region: Saint Andrew
+lat: 18.000
+lon: -76.800
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 43
+wind_dir: NE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:56 PM', 'moonrise': '04:13 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 26, 'maxtemp': 32, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 27
+request
+type: City
+query: Montego Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Montego Bay
+country: Jamaica
+region: Saint James
+lat: 18.467
+lon: -77.917
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 7
+wind_degree: 223
+wind_dir: SW
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:02 AM', 'sunset': '06:00 PM', 'moonrise': '04:17 AM', 'moonset': '04:58 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 27, 'maxtemp': 30, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 11.3, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 28
+request
+type: City
+query: Spanish Town, Jamaica
+language: en
+unit: m
+
+location
+name: Spanish Town
+country: Jamaica
+region: Saint Catherine
+lat: 17.983
+lon: -76.950
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 8
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:57 PM', 'moonrise': '04:14 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 25, 'maxtemp': 35, 'avgtemp': 30, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 29
+request
+type: City
+query: Portmore, Jamaica
+language: en
+unit: m
+
+location
+name: Portmore
+country: Jamaica
+region: Saint Catherine
+lat: 17.967
+lon: -76.867
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 54
+wind_dir: NE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:56 PM', 'moonrise': '04:13 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 26, 'maxtemp': 33, 'avgtemp': 30, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 30
+request
+type: City
+query: Mandeville, Jamaica
+language: en
+unit: m
+
+location
+name: Mandeville
+country: Jamaica
+region: Manchester
+lat: 18.033
+lon: -77.500
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly Cloudy ']
+wind_speed: 4
+wind_degree: 58
+wind_dir: ENE
+pressure: 1013
+precip: 0
+humidity: 96
+cloudcover: 55
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:00 AM', 'sunset': '05:59 PM', 'moonrise': '04:16 AM', 'moonset': '04:56 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 25, 'maxtemp': 31, 'avgtemp': 28, 'totalsnow': 0, 'sunhour': 11.5, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 31
+request
+type: City
+query: Ocho Rios, Jamaica
+language: en
+unit: m
+
+location
+name: Ocho Rios
+country: Jamaica
+region: Saint Ann
+lat: 18.417
+lon: -77.117
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 27
+weather_code: 113
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png']
+weather_descriptions: ['Clear ']
+wind_speed: 7
+wind_degree: 154
+wind_dir: SSE
+pressure: 1012
+precip: 0
+humidity: 82
+cloudcover: 2
+feelslike: 31
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:59 AM', 'sunset': '05:57 PM', 'moonrise': '04:14 AM', 'moonset': '04:54 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 26, 'maxtemp': 32, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 11.8, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 32
+request
+type: City
+query: May Pen, Jamaica
+language: en
+unit: m
+
+location
+name: May Pen
+country: Jamaica
+region: Clarendon
+lat: 17.967
+lon: -77.233
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 5
+wind_degree: 20
+wind_dir: NNE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:59 AM', 'sunset': '05:58 PM', 'moonrise': '04:15 AM', 'moonset': '04:54 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 24, 'maxtemp': 32, 'avgtemp': 28, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 33
+request
+type: City
+query: Savanna-La-Mar, Jamaica
+language: en
+unit: m
+
+location
+name: Savanna-La-Mar
+country: Jamaica
+region: Westmoreland
+lat: 18.217
+lon: -78.133
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 9
+wind_degree: 111
+wind_dir: ESE
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:04 AM', 'sunset': '06:02 PM', 'moonrise': '04:19 AM', 'moonset': '04:59 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 26, 'maxtemp': 30, 'avgtemp': 28, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 34
+request
+type: City
+query: Port Antonio, Jamaica
+language: en
+unit: m
+
+location
+name: Port Antonio
+country: Jamaica
+region: Portland
+lat: 18.183
+lon: -76.467
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 11
+wind_degree: 138
+wind_dir: SE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 41
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:56 AM', 'sunset': '05:55 PM', 'moonrise': '04:11 AM', 'moonset': '04:51 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 27, 'maxtemp': 31, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 35
+request
+type: City
+query: Falmouth, United States of America
+language: en
+unit: m
+
+location
+name: Falmouth
+country: United States of America
+region: Massachusetts
+lat: 41.551
+lon: -70.615
+timezone_id: America/New_York
+localtime: 2024-10-01 22:52
+localtime_epoch: 1727823120
+utc_offset: -4.0
+
+current
+observation_time: 02:52 AM
+temperature: 13
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 21
+wind_degree: 79
+wind_dir: ENE
+pressure: 1018
+precip: 0
+humidity: 94
+cloudcover: 75
+feelslike: 11
+uv_index: 1
+visibility: 16
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:39 AM', 'sunset': '06:25 PM', 'moonrise': '04:25 AM', 'moonset': '05:42 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 14, 'maxtemp': 16, 'avgtemp': 15, 'totalsnow': 0, 'sunhour': 9, 'uv_index': 5}
+
+----------------------------------------------------------------------------------------------------
+
+Section 36
+request
+type: City
+query: Negril, Jamaica
+language: en
+unit: m
+
+location
+name: Negril
+country: Jamaica
+region: Westmoreland
+lat: 18.267
+lon: -78.350
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 9
+wind_degree: 111
+wind_dir: ESE
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:04 AM', 'sunset': '06:02 PM', 'moonrise': '04:19 AM', 'moonset': '04:59 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 26, 'maxtemp': 30, 'avgtemp': 28, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 37
+request
+type: City
+query: Lucea, Jamaica
+language: en
+unit: m
+
+location
+name: Lucea
+country: Jamaica
+region: Hanover
+lat: 18.450
+lon: -78.167
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 7
+wind_degree: 223
+wind_dir: SW
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:02 AM', 'sunset': '06:00 PM', 'moonrise': '04:17 AM', 'moonset': '04:58 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 27, 'maxtemp': 30, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 11.3, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 38
+request
+type: City
+query: Black River, Jamaica
+language: en
+unit: m
+
+location
+name: Black River
+country: Jamaica
+region: Saint Elizabeth
+lat: 18.017
+lon: -77.850
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 58
+wind_dir: ENE
+pressure: 1011
+precip: 0
+humidity: 84
+cloudcover: 25
+feelslike: 30
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:00 AM', 'sunset': '05:59 PM', 'moonrise': '04:16 AM', 'moonset': '04:56 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 25, 'maxtemp': 31, 'avgtemp': 28, 'totalsnow': 0, 'sunhour': 11.5, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 39
+request
+type: City
+query: Morant Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Morant Bay
+country: Jamaica
+region: Saint Thomas
+lat: 17.883
+lon: -76.417
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 10
+wind_degree: 111
+wind_dir: ESE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 40
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:55 AM', 'sunset': '05:54 PM', 'moonrise': '04:11 AM', 'moonset': '04:50 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 28, 'maxtemp': 29, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 11.5, 'uv_index': 10}
+
+----------------------------------------------------------------------------------------------------
+
+Section 40
+request
+type: City
+query: Linstead, Jamaica
+language: en
+unit: m
+
+location
+name: Linstead
+country: Jamaica
+region: Saint Catherine
+lat: 18.133
+lon: -77.033
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 355
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:57 PM', 'moonrise': '04:14 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 24, 'maxtemp': 35, 'avgtemp': 30, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 41
+request
+type: City
+query: Old Harbour, Jamaica
+language: en
+unit: m
+
+location
+name: Old Harbour
+country: Jamaica
+region: Saint Catherine
+lat: 17.933
+lon: -77.117
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 5
+wind_degree: 20
+wind_dir: NNE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:59 AM', 'sunset': '05:58 PM', 'moonrise': '04:15 AM', 'moonset': '04:54 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 24, 'maxtemp': 32, 'avgtemp': 28, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 42
+request
+type: City
+query: Bog Walk, Jamaica
+language: en
+unit: m
+
+location
+name: Bog Walk
+country: Jamaica
+region: Saint Catherine
+lat: 18.100
+lon: -77.017
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 355
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:57 PM', 'moonrise': '04:14 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 24, 'maxtemp': 35, 'avgtemp': 30, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 43
+request
+type: City
+query: Brown's Green, United Kingdom
+language: en
+unit: m
+
+location
+name: Brown's Green
+country: United Kingdom
+region: West Midlands
+lat: 52.521
+lon: -1.935
+timezone_id: Europe/London
+localtime: 2024-10-02 03:52
+localtime_epoch: 1727841120
+utc_offset: 1.0
+
+current
+observation_time: 02:52 AM
+temperature: 12
+weather_code: 122
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Overcast']
+wind_speed: 22
+wind_degree: 6
+wind_dir: N
+pressure: 1013
+precip: 0.1
+humidity: 100
+cloudcover: 100
+feelslike: 10
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-10-01: {'date': '2024-10-01', 'date_epoch': 1727740800, 'astro': {'sunrise': '07:10 AM', 'sunset': '06:44 PM', 'moonrise': '05:33 AM', 'moonset': '06:25 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 3}, 'mintemp': 10, 'maxtemp': 11, 'avgtemp': 11, 'totalsnow': 0, 'sunhour': 8.3, 'uv_index': 1}
+
+----------------------------------------------------------------------------------------------------
+
+Section 44
+request
+type: City
+query: Annotto Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Annotto Bay
+country: Jamaica
+region: Saint Mary
+lat: 18.267
+lon: -76.767
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 49
+wind_dir: NE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:56 PM', 'moonrise': '04:13 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 26, 'maxtemp': 32, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 45
+request
+type: City
+query: Ewarton, Jamaica
+language: en
+unit: m
+
+location
+name: Ewarton
+country: Jamaica
+region: Saint Catherine
+lat: 18.183
+lon: -77.083
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 4
+wind_degree: 355
+wind_dir: N
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 43
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:57 PM', 'moonrise': '04:14 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 24, 'maxtemp': 35, 'avgtemp': 30, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 46
+request
+type: City
+query: Seaforth, Jamaica
+language: en
+unit: m
+
+location
+name: Seaforth
+country: Jamaica
+region: Saint Thomas
+lat: 17.950
+lon: -76.467
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 11
+wind_degree: 138
+wind_dir: SE
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 41
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:56 AM', 'sunset': '05:55 PM', 'moonrise': '04:11 AM', 'moonset': '04:51 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 27, 'maxtemp': 31, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 47
+request
+type: City
+query: Runaway Bay, Jamaica
+language: en
+unit: m
+
+location
+name: Runaway Bay
+country: Jamaica
+region: Saint Ann
+lat: 18.467
+lon: -77.333
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 26
+weather_code: 113
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png']
+weather_descriptions: ['Clear ']
+wind_speed: 6
+wind_degree: 194
+wind_dir: SSW
+pressure: 1012
+precip: 0
+humidity: 80
+cloudcover: 8
+feelslike: 29
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '06:00 AM', 'sunset': '05:58 PM', 'moonrise': '04:15 AM', 'moonset': '04:55 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 26, 'maxtemp': 31, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 11.6, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 48
+request
+type: City
+query: St Ann's, United Kingdom
+language: en
+unit: m
+
+location
+name: St Ann's
+country: United Kingdom
+region: Nottinghamshire
+lat: 52.959
+lon: -1.146
+timezone_id: Europe/London
+localtime: 2024-10-02 03:52
+localtime_epoch: 1727841120
+utc_offset: 1.0
+
+current
+observation_time: 02:52 AM
+temperature: 12
+weather_code: 122
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Overcast']
+wind_speed: 27
+wind_degree: 14
+wind_dir: NNE
+pressure: 1012
+precip: 0.4
+humidity: 94
+cloudcover: 100
+feelslike: 10
+uv_index: 1
+visibility: 8
+is_day: no
+
+forecast
+2024-10-01: {'date': '2024-10-01', 'date_epoch': 1727740800, 'astro': {'sunrise': '07:07 AM', 'sunset': '06:40 PM', 'moonrise': '05:29 AM', 'moonset': '06:21 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 3}, 'mintemp': 11, 'maxtemp': 12, 'avgtemp': 12, 'totalsnow': 0, 'sunhour': 8.3, 'uv_index': 1}
+
+----------------------------------------------------------------------------------------------------
+
+Section 49
+request
+type: City
+query: Yallahs, Jamaica
+language: en
+unit: m
+
+location
+name: Yallahs
+country: Jamaica
+region: Saint Thomas
+lat: 17.867
+lon: -76.567
+timezone_id: America/Jamaica
+localtime: 2024-10-01 21:52
+localtime_epoch: 1727819520
+utc_offset: -5.0
+
+current
+observation_time: 02:52 AM
+temperature: 30
+weather_code: 116
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Partly cloudy']
+wind_speed: 8
+wind_degree: 79
+wind_dir: E
+pressure: 1011
+precip: 0
+humidity: 79
+cloudcover: 25
+feelslike: 42
+uv_index: 1
+visibility: 10
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:58 AM', 'sunset': '05:56 PM', 'moonrise': '04:13 AM', 'moonset': '04:53 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 27, 'maxtemp': 31, 'avgtemp': 29, 'totalsnow': 0, 'sunhour': 12, 'uv_index': 11}
+
+----------------------------------------------------------------------------------------------------
+
+Section 50
+request
+type: City
+query: Santa Cruz De La Sierra, Bolivia
+language: en
+unit: m
+
+location
+name: Santa Cruz De La Sierra
+country: Bolivia
+region: Santa Cruz
+lat: -17.800
+lon: -63.167
+timezone_id: America/La_Paz
+localtime: 2024-10-01 22:52
+localtime_epoch: 1727823120
+utc_offset: -4.0
+
+current
+observation_time: 02:52 AM
+temperature: 27
+weather_code: 122
+weather_icons: ['https://cdn.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png']
+weather_descriptions: ['Smoke']
+wind_speed: 19
+wind_degree: 340
+wind_dir: NNW
+pressure: 1007
+precip: 0
+humidity: 74
+cloudcover: 0
+feelslike: 26
+uv_index: 1
+visibility: 5
+is_day: no
+
+forecast
+2024-09-30: {'date': '2024-09-30', 'date_epoch': 1727654400, 'astro': {'sunrise': '05:55 AM', 'sunset': '06:10 PM', 'moonrise': '04:42 AM', 'moonset': '04:39 PM', 'moon_phase': 'Waning Crescent', 'moon_illumination': 7}, 'mintemp': 25, 'maxtemp': 39, 'avgtemp': 32, 'totalsnow': 0, 'sunhour': 12.6, 'uv_index': 10}
+
+----------------------------------------------------------------------------------------------------
+
+Section 51
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 52
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 53
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 54
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 55
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 56
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 57
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 58
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 59
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 60
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 61
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 62
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 63
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 64
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 65
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 66
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 67
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 68
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 69
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 70
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 71
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 72
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 73
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 74
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+
+Section 75
+
+error
+code: 104
+type: usage_limit_reached
+info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
+
+----------------------------------------------------------------------------------------------------
+