ガイドAPIリファレンス
ガイド

燃料消費およびCO₂排出を監視する

燃料消費量およびCO₂排出量を推定することで、物流業務のコストを効率的に把握できると同時に、カーボンフットプリントの削減といったサステナビリティ目標との整合性も確保できます。

HERE Routing API V8を用いたHERE Tour Planning APIソリューションでは、問題リクエストに運行管理の車両のエネルギー消費パラメーターを入力として指定することで、結果として得られるツアーの推定燃料consumptionおよびco2emissionの総量を取得できます。これらの値は、ツアー統計の一部として統合されます。

📘

  • CO₂排出量および燃料消費量の統計を有効にするには、HERE Routing API v8へのアクセス権を取得する必要があります。詳細については、以下を参照してください。
  • 燃料消費量およびCO₂排出量の統計は、情報提供のみを目的としており、ルート最適化には影響しません。
  • これらの統計を取得するプロセスには、追加のHERE Routing API v8リクエストが含まれており、そのためHERE Tour Planning APIの総レスポンス時間に影響を及ぼす可能性があります。
  • HERE Routing API v8に対するconsumptionデータおよびco2Emissionデータのリクエストが失敗した場合でも、HERE Tour Planning APIのリクエスト自体は失敗せず、noticeオブジェクト内にエラーメッセージが返されます。

CO₂排出量と燃料消費量の計算について理解する

ツアーに参加するすべての車両における燃料消費量とCO₂排出量の合計を計算するには、問題リクエスト内のvehicle type定義の一部として、fuelオブジェクトを含めてください。以下のコードスニペットにその例を示します。

"fuel": {
  "type": "petrol",
  "freeFlowSpeedTable": "0,0,8.33,0.000120,13.89,0.000105,19.44,0.000095,22.22,0.000090,25,0.000092,30.56,0.000100,36.11,0.000115,40.28,0.000130",
  "trafficSpeedTable": "0,0,8.33,0.000125,13.89,0.000110,19.44,0.000098,22.22,0.000090,25,0.000092,30.56,0.000100,36.11,0.000115,40.28,0.000130",
  "additionalConsumption": 0.00001,
  "ascent": 0.00001
}

前述の例が示すように、fuelオブジェクトには車両固有のエネルギー消費パラメーターが多数含まれています。これらのパラメーターは、ツアーにおける燃料消費量とCO₂排出量の合計を計算するために、HERE Routing API v8で使用されます。

  • type:燃料のタイプを示します。たとえば、petroldieselLPG (液化石油ガス) などがあります。

  • freeFlowSpeedTable:交通がスムーズに流れている状況下における、さまざまな速度での車両のエネルギー消費を示すテーブルまたはデータセットを表します。形式は次のとおりです:<SPEED_0>,<CONSUMPTION_0>,<SPEED_1>,<CONSUMPTION_1>,...,<SPEED_N>,<CONSUMPTION_N>

    単位は燃料の種類によって異なります。以下の表をご覧ください。

    燃料タイプ単位
    ディーゼル、ガソリン、LPGl/m (リットル/メートル)
    CNGkg/m (キログラム/メートル)
  • trafficSpeedTable:さまざまな交通状況下における、異なる速度での車両のエネルギー消費を記録したもので、freeFlowSpeedTableプロパティと同じ形式と単位系が使われます。

  • additionalConsumption:たとえばエアコンや照明など、車両の補助システムによる燃料消費量を示します。ディーゼル、ガソリン、LPGの場合はリットル/秒、CNGの場合はキログラム/秒で表されます。

  • ascent:標高が1メートル上昇するごとの燃料消費率を示します。ディーゼル、ガソリン、LPGの場合はメートルあたりのリットル/メートル、CNGの場合はキログラム/メートルで表されます。

📘

fuelオブジェクトおよび関連するパラメーターの詳細については、「HERE Routing API V8 APIリファレンス」を参照してください。

以下のセクションでは、HERE Tour Planningの問題およびそのソリューションの全体的な文脈における、燃料消費量およびCO₂排出量機能の実用的な使用例を紹介します。

問題

次に示す問題には、fuelオブジェクトと、それに関連するエネルギー消費量のプロパティが含まれており、これらは車両タイプ定義の一部として組み込まれています。

Click to expand/collapse the sample JSON
{
  "fleet": {
    "types": [
      {
        "id": "small",
        "profile": "car",
        "costs": {
          "fixed": 20,
          "distance": 0,
          "time": 0.005
        },
        "shifts": [
          {
            "start": {
              "time": "2023-05-28T08:00:00Z",
              "location": {
                "lat": 52.50935,
                "lng": 13.41997
              }
            },
            "end": {
              "time": "2023-05-28T16:00:00Z",
              "location": {
                "lat": 52.50935,
                "lng": 13.41997
              }
            }
          }
        ],
        "fuel": {
          "type": "diesel",
          "freeFlowSpeedTable": "0,0,8.33,0.000120,13.89,0.000105,19.44,0.000095,22.22,0.000090,25,0.000092,30.56,0.000100,36.11,0.000115,40.28,0.000130",
          "trafficSpeedTable": "0,0,8.33,0.000125,13.89,0.000110,19.44,0.000098,22.22,0.000090,25,0.000092,30.56,0.000100,36.11,0.000115,40.28,0.000130",
          "additionalConsumption": 0.00001,
          "ascent": 0.00001
        },
        "capacity": [
          100
        ],
        "amount": 10
      }
    ],
    "profiles": [
      {
        "type": "car",
        "name": "car"
      }
    ]
  },
  "plan": {
    "jobs": [
      {
        "id": "Job_1",
        "tasks": {
          "pickups": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.56182,
                    "lng": 13.497167
                  },
                  "duration": 600
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_2",
        "tasks": {
          "pickups": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.534553,
                    "lng": 13.519429
                  },
                  "duration": 600
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_3",
        "tasks": {
          "pickups": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.482275,
                    "lng": 13.502456
                  },
                  "duration": 600
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_4",
        "tasks": {
          "pickups": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.473537,
                    "lng": 13.505414
                  },
                  "duration": 600
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_5",
        "tasks": {
          "pickups": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.463341,
                    "lng": 13.49061
                  },
                  "duration": 600
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_6",
        "tasks": {
          "pickups": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.434003,
                    "lng": 13.466142
                  },
                  "duration": 600
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_7",
        "tasks": {
          "pickups": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.447476,
                    "lng": 13.433062
                  },
                  "duration": 600
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_8",
        "tasks": {
          "pickups": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.458414,
                    "lng": 13.392079
                  },
                  "duration": 600
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_9",
        "tasks": {
          "pickups": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.446407,
                    "lng": 13.36047
                  },
                  "duration": 600
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_10",
        "tasks": {
          "pickups": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.440807,
                    "lng": 13.351399
                  },
                  "duration": 600
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_11",
        "tasks": {
          "pickups": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.441913,
                    "lng": 13.339028
                  },
                  "duration": 600
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_12",
        "tasks": {
          "pickups": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.458232,
                    "lng": 13.338698
                  },
                  "duration": 600
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_13",
        "tasks": {
          "pickups": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.457629,
                    "lng": 13.323742
                  },
                  "duration": 600
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      }
    ]
  }
}

ソリューション

前述の問題に対するソリューションでは、statisticオブジェクトにconsumptionプロパティおよびco2Emissionプロパティが新たに追加されています。以下のスニペットをご覧ください。

{
  "statistic": {
    "cost": 91.205,
    "distance": 60325,
    "duration": 14241,
    "times": {
      "driving": 6441,
      "serving": 7800,
      "waiting": 0,
      "stopping": 0,
      "break": 0
    },
    "consumption": 6.3893,
    "co2Emission": 17.232999999999997
  }
}

説明

  • consumption:推定される正味の燃料消費量を示します。単位の種類は燃料タイプによって異なります。ディーゼル、ガソリン、LPG (液化石油ガス) の車両ではリットルで、CNG (圧縮天然ガス) の車両ではキログラムで測定されます。

    サンプルの問題では、燃料タイプとしてdieselが指定されており、そのため消費量は6.3893リットルとなっています。

  • co2Emission:そのツアーに対する、キログラム単位の推定CO₂排出量を表します。

    サンプルの問題のエネルギー消費統計に基づくと、ツアー全体のCO₂排出量は約17.233キログラムと算出されます。

次のJSONファイルには、完全なソリューションのJSONファイルが含まれています。

Click to expand/collapse the sample JSON
{
  "statistic": {
    "cost": 91.205,
    "distance": 60325,
    "duration": 14241,
    "times": {
      "driving": 6441,
      "serving": 7800,
      "waiting": 0,
      "stopping": 0,
      "break": 0
    },
    "consumption": 6.3893,
    "co2Emission": 17.232999999999997
  },
  "tours": [
    {
      "vehicleId": "small_10",
      "typeId": "small",
      "stops": [
        {
          "time": {
            "arrival": "2023-05-28T08:00:00Z",
            "departure": "2023-05-28T08:00:00Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "departure",
              "type": "departure",
              "location": {
                "lat": 52.50935,
                "lng": 13.41997
              },
              "time": {
                "start": "2023-05-28T08:00:00Z",
                "end": "2023-05-28T08:00:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.50935,
            "lng": 13.41997
          },
          "distance": 0
        },
        {
          "time": {
            "arrival": "2023-05-28T08:19:39Z",
            "departure": "2023-05-28T08:29:39Z"
          },
          "load": [
            1
          ],
          "activities": [
            {
              "jobId": "Job_1",
              "type": "pickup",
              "location": {
                "lat": 52.56182,
                "lng": 13.497167
              },
              "time": {
                "start": "2023-05-28T08:19:39Z",
                "end": "2023-05-28T08:29:39Z"
              }
            }
          ],
          "location": {
            "lat": 52.56182,
            "lng": 13.497167
          },
          "distance": 9971
        },
        {
          "time": {
            "arrival": "2023-05-28T08:36:16Z",
            "departure": "2023-05-28T08:46:16Z"
          },
          "load": [
            2
          ],
          "activities": [
            {
              "jobId": "Job_2",
              "type": "pickup",
              "location": {
                "lat": 52.534553,
                "lng": 13.519429
              },
              "time": {
                "start": "2023-05-28T08:36:16Z",
                "end": "2023-05-28T08:46:16Z"
              }
            }
          ],
          "location": {
            "lat": 52.534553,
            "lng": 13.519429
          },
          "distance": 13720
        },
        {
          "time": {
            "arrival": "2023-05-28T09:00:18Z",
            "departure": "2023-05-28T09:10:18Z"
          },
          "load": [
            3
          ],
          "activities": [
            {
              "jobId": "Job_3",
              "type": "pickup",
              "location": {
                "lat": 52.482275,
                "lng": 13.502456
              },
              "time": {
                "start": "2023-05-28T09:00:18Z",
                "end": "2023-05-28T09:10:18Z"
              }
            }
          ],
          "location": {
            "lat": 52.482275,
            "lng": 13.502456
          },
          "distance": 22499
        },
        {
          "time": {
            "arrival": "2023-05-28T09:12:08Z",
            "departure": "2023-05-28T09:22:08Z"
          },
          "load": [
            4
          ],
          "activities": [
            {
              "jobId": "Job_4",
              "type": "pickup",
              "location": {
                "lat": 52.473537,
                "lng": 13.505414
              },
              "time": {
                "start": "2023-05-28T09:12:08Z",
                "end": "2023-05-28T09:22:08Z"
              }
            }
          ],
          "location": {
            "lat": 52.473537,
            "lng": 13.505414
          },
          "distance": 23785
        },
        {
          "time": {
            "arrival": "2023-05-28T09:28:08Z",
            "departure": "2023-05-28T09:38:08Z"
          },
          "load": [
            5
          ],
          "activities": [
            {
              "jobId": "Job_5",
              "type": "pickup",
              "location": {
                "lat": 52.463341,
                "lng": 13.49061
              },
              "time": {
                "start": "2023-05-28T09:28:08Z",
                "end": "2023-05-28T09:38:08Z"
              }
            }
          ],
          "location": {
            "lat": 52.463341,
            "lng": 13.49061
          },
          "distance": 26726
        },
        {
          "time": {
            "arrival": "2023-05-28T09:47:07Z",
            "departure": "2023-05-28T09:57:07Z"
          },
          "load": [
            6
          ],
          "activities": [
            {
              "jobId": "Job_6",
              "type": "pickup",
              "location": {
                "lat": 52.434003,
                "lng": 13.466142
              },
              "time": {
                "start": "2023-05-28T09:47:07Z",
                "end": "2023-05-28T09:57:07Z"
              }
            }
          ],
          "location": {
            "lat": 52.434003,
            "lng": 13.466142
          },
          "distance": 32033
        },
        {
          "time": {
            "arrival": "2023-05-28T10:02:57Z",
            "departure": "2023-05-28T10:12:57Z"
          },
          "load": [
            7
          ],
          "activities": [
            {
              "jobId": "Job_7",
              "type": "pickup",
              "location": {
                "lat": 52.447476,
                "lng": 13.433062
              },
              "time": {
                "start": "2023-05-28T10:02:57Z",
                "end": "2023-05-28T10:12:57Z"
              }
            }
          ],
          "location": {
            "lat": 52.447476,
            "lng": 13.433062
          },
          "distance": 35562
        },
        {
          "time": {
            "arrival": "2023-05-28T10:19:30Z",
            "departure": "2023-05-28T10:29:30Z"
          },
          "load": [
            8
          ],
          "activities": [
            {
              "jobId": "Job_8",
              "type": "pickup",
              "location": {
                "lat": 52.458414,
                "lng": 13.392079
              },
              "time": {
                "start": "2023-05-28T10:19:30Z",
                "end": "2023-05-28T10:29:30Z"
              }
            }
          ],
          "location": {
            "lat": 52.458414,
            "lng": 13.392079
          },
          "distance": 39586
        },
        {
          "time": {
            "arrival": "2023-05-28T10:34:45Z",
            "departure": "2023-05-28T10:44:45Z"
          },
          "load": [
            9
          ],
          "activities": [
            {
              "jobId": "Job_9",
              "type": "pickup",
              "location": {
                "lat": 52.446407,
                "lng": 13.36047
              },
              "time": {
                "start": "2023-05-28T10:34:45Z",
                "end": "2023-05-28T10:44:45Z"
              }
            }
          ],
          "location": {
            "lat": 52.446407,
            "lng": 13.36047
          },
          "distance": 42400
        },
        {
          "time": {
            "arrival": "2023-05-28T10:48:15Z",
            "departure": "2023-05-28T10:58:15Z"
          },
          "load": [
            10
          ],
          "activities": [
            {
              "jobId": "Job_10",
              "type": "pickup",
              "location": {
                "lat": 52.440807,
                "lng": 13.351399
              },
              "time": {
                "start": "2023-05-28T10:48:15Z",
                "end": "2023-05-28T10:58:15Z"
              }
            }
          ],
          "location": {
            "lat": 52.440807,
            "lng": 13.351399
          },
          "distance": 43984
        },
        {
          "time": {
            "arrival": "2023-05-28T11:01:36Z",
            "departure": "2023-05-28T11:11:36Z"
          },
          "load": [
            11
          ],
          "activities": [
            {
              "jobId": "Job_11",
              "type": "pickup",
              "location": {
                "lat": 52.441913,
                "lng": 13.339028
              },
              "time": {
                "start": "2023-05-28T11:01:36Z",
                "end": "2023-05-28T11:11:36Z"
              }
            }
          ],
          "location": {
            "lat": 52.441913,
            "lng": 13.339028
          },
          "distance": 45583
        },
        {
          "time": {
            "arrival": "2023-05-28T11:17:26Z",
            "departure": "2023-05-28T11:27:26Z"
          },
          "load": [
            12
          ],
          "activities": [
            {
              "jobId": "Job_13",
              "type": "pickup",
              "location": {
                "lat": 52.457629,
                "lng": 13.323742
              },
              "time": {
                "start": "2023-05-28T11:17:26Z",
                "end": "2023-05-28T11:27:26Z"
              }
            }
          ],
          "location": {
            "lat": 52.457629,
            "lng": 13.323742
          },
          "distance": 48283
        },
        {
          "time": {
            "arrival": "2023-05-28T11:29:59Z",
            "departure": "2023-05-28T11:39:59Z"
          },
          "load": [
            13
          ],
          "activities": [
            {
              "jobId": "Job_12",
              "type": "pickup",
              "location": {
                "lat": 52.458232,
                "lng": 13.338698
              },
              "time": {
                "start": "2023-05-28T11:29:59Z",
                "end": "2023-05-28T11:39:59Z"
              }
            }
          ],
          "location": {
            "lat": 52.458232,
            "lng": 13.338698
          },
          "distance": 49435
        },
        {
          "time": {
            "arrival": "2023-05-28T11:57:21Z",
            "departure": "2023-05-28T11:57:21Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "arrival",
              "type": "arrival",
              "location": {
                "lat": 52.50935,
                "lng": 13.41997
              },
              "time": {
                "start": "2023-05-28T11:57:21Z",
                "end": "2023-05-28T11:57:21Z"
              }
            }
          ],
          "location": {
            "lat": 52.50935,
            "lng": 13.41997
          },
          "distance": 60325
        }
      ],
      "statistic": {
        "cost": 91.205,
        "distance": 60325,
        "duration": 14241,
        "times": {
          "driving": 6441,
          "serving": 7800,
          "waiting": 0,
          "stopping": 0,
          "break": 0
        },
        "consumption": 6.3893,
        "co2Emission": 17.232999999999997
      },
      "shiftIndex": 0
    }
  ]
}

結論

このチュートリアルでは、運行管理のエネルギー消費データをAPIリクエストに含める方法を紹介しました。そうすることで、燃料消費量およびCO₂排出量に関する有益なインサイトが得られ、よりコスト効率が高く、環境に配慮した物流運用を実現できます。

次のステップ