HERE Data SDK for Python は Platform
、オブジェクトを介した HERE platform との対話を提供します。 SDK では、 2 つの標準プラットフォーム環境がサポートされています。
これらの各プラットフォーム環境には、独自の資格情報セットがあります。 デフォルトの環境にアクセスし、デフォルトの資格情報を使用する場合は Platform
、次のようにオブジェクトを作成します。
from here.platform import Platform
platform = Platform()
別の環境と対話したり、別の資格情報を提供したりするには Platform
、コンストラクタ内の対応するオプションのパラメータのいずれかまたは両方を渡します。
from here.platform import Platform
from here.platform.environment import Environment
platform = Platform(credentials=platform_cred, environment=Environment.CHINA)
資格情報を提供するさまざまな方法の詳細については、このドキュメントの「資格情報」セクションを参照してください。
HTTP プロキシを使用する必要がある場合 Platform
は、プロキシ設定を渡すことで、オブジェクトを作成および取得できます。 詳細については 、「プロキシ」を参照してください。
from here.platform import Platform
proxies = {
'http': 'http://10.10.1.10:3128',
'https': 'http://10.10.1.10:1080',
}
platform = Platform(proxies=proxies)
コードで pandas/GeoPandas を使用する場合 Platform
GeoPandasAdapter
は、を渡すオブジェクトを作成する必要があります。 これにより、パンダー /GeoPandas が提供するデータ構造とシームレスに連携するように、すべての標準的なプラットフォーム操作が適応されます。 GeoPandasAdapter
の操作方法については、このドキュメントの「 GeoPandas の使用」セクションを参照 してください。
from here.geopandas_adapter import GeoPandasAdapter
from here.platform import Platform
platform = Platform(adapter=GeoPandasAdapter())
ローカルカタログのサポート
ローカルカタログは、ファイルにエンコードされ、 ~/.here/local/ ディレクトリに保存される特殊なカタログです。 ローカルカタログを使用するには、認証も外部ネットワークへのアクセスも必要ありません。 ローカルカタログは、ディスクに永続化するのではなく、任意で作成してメモリに保存できます。このため、開発および自動テスト中に特に役立ちます。
ローカルカタログおよびローカルデータサービスのインストール / 実行方法の詳細については、公式ドキュメント HEREを参照してください。
HERE Data SDK for Python を使用してこのようなローカルカタログにアクセスするには Platform
LOCAL
、環境として指定してオブジェクトを作成する必要があります。
from here.platform import Platform
from here.platform.environment import Environment
platform = Platform(environment=Environment.LOCAL)
メモ
http://127.0.0.1:31005
Platform
オブジェクトを作成する前に、ローカルデータサーバーが実行中であり、経由で利用可能であることが必要です Platform
でオブジェクトを作成するには、資格情報は必要ありません environment=Environment.LOCAL
- ローカル環境で有効な SDK メソッド ( 例
Platform.get_status()
: ) 呼び出した場合は例外を発生させます
Platform
オブジェクトを作成すると、次のことができます。
以下に、プラットフォームレベルでの一般的な操作のリストを示します。 カタログおよびプロジェクトオブジェクトで使用できるカタログおよびプロジェクトの操作については、このドキュメントの後半のセクションを参照してください。 オプションの引数および返されるメソッドの種類の詳細については、 API のドキュメントを参照してください。
from here.platform import Platform
platform = Platform()
env = platform.environment
from here.platform import Platform
platform = Platform()
config = platform.platform_config
単一のフィールド
config.api
'api.platform.here.com'
すべてのフィールド
config.__dict__
{
'api': 'api.platform.here.com',
'portal_url': 'https://platform.here.com',
'status_url': 'https://status.here.com/status',
'platform_status_url': 'https://status.here.com/api/here/v1/status',
'account_url': 'https://account.api.here.com'
}
from here.platform import Platform
platform = Platform()
status = platform.get_status()
status
{'result': {'status': 'ok', 'description': 'all systems operational'}}
カタログオブジェクトを取得します
指定した HERE リソースネーム のカタログオブジェクトを取得します。 カタログが存在しない場合、または資格情報が有効でない場合、エラーが生成されます。
from here.platform import Platform
platform = Platform()
hrn = "hrn:here:data::olp-here:oma-3"
catalog = platform.get_catalog(hrn=hrn)
カタログが存在するか確認してください
特定の HERE リソースネーム にカタログが存在するかどうかを確認してください。 カタログが存在するかどうかに応じて、 True または False を返します。
from here.platform import Platform
platform = Platform()
hrn = "hrn:here:data::olp-here:rib-2"
result = platform.catalog_exists(hrn=hrn)
result
True
カタログを作成します
カタログを作成し、生成されたカタログオブジェクトを取得します。
from here.platform import Platform
platform = Platform()
catalog = platform.create_catalog(id="catalog-id", name="name-of-the-catalog",
summary="summary of the catalog", description="description of the catalog",
tags=["tag1", "tag2"])
レイヤーを使用してカタログを作成します
カタログの作成時に、 1 つ以上のレイヤーを定義および作成できます。
layer1 = {
"id": "temp-layer",
"name": "temp-layer-name",
"summary": "temp-layer-summary",
"description": "temp-layer-description",
"contentType": "application/json",
"layerType": "volatile",
"partitioning": {
"scheme": "generic"
}
}
catalog = platform.create_catalog(id=catalog_id, name='name-of-the-catalog',
summary='summary-of-the-catalog', description='description-of-the-catalog', layers=[layer1],
tags=["test", "analytics"])
既存のカタログを複製します
「最初から」カタログを作成するだけでなく、既存のカタログを複製して新しいカタログを作成できます。 新しいクローンの構成の詳細はソースと同じになりますが、データは空になります。
platform = Platform()
weather_na = platform.get_catalog("hrn:here:data::olp-here:live-weather-na")
weather_na_details = weather_na.get_details()
cat = platform.clone_catalog(
source=weather_na,
id="weather-clone-all-layers",
description="weather-clone-catalog",
)
cat_details = cat.get_details()
ソースカタログのレイヤーのサブセットのみを複製に含める場合 layers
は、保持するレイヤーのリストを引数に追加します。
platform = Platform()
weather_na = platform.get_catalog("hrn:here:data::olp-here:live-weather-na")
weather_na_details = weather_na.get_details()
cat = platform.clone_catalog(
source=weather_na,
id="weather-clone-one-layer",
description="weather-clone-catalog",
layers=["latest-data"],
)
cat_details = cat.get_details()
カタログを一覧表示します
HERE platform でアクセスできるすべてのカタログを一覧表示します。 オプションで、フィルタ条件で指定されたカタログのみを検索して返します。 フィルタ条件は、カタログの詳細情報 ( 名前、カバレッジ、所有者など ) の任意のアイテムの正確な値として指定されます。 Catalog オブジェクトのリストが返されます。
from here.platform import Platform
platform = Platform()
list_of_catalogs = platform.list_catalogs(coverage='CN')
レイヤーを一覧表示します
HERE platform でアクセスできるすべてのカタログのすべてのレイヤーを一覧表示します。 オプションで、フィルタを満たすカタログのレイヤーのみを検索して返します。 フィルタがカタログに適用されます。 フィルタリングされたカタログのレイヤーオブジェクトのリストが返されます。
from here.platform import Platform
platform = Platform()
list_of_layers = platform.list_layers(layerType = 'index')
カタログを修正します
名前、概要、説明など、カタログの詳細を変更します。 これにより、カタログのすべての詳細情報が置き換えられます。 この呼び出しが成功した後、 get_catalog を介して新しいカタログを取得し、影響を受けるレイヤーを含む変更された詳細にアクセスできるようにします。 これは、カタログフィールドを変更するために使用されます。
from here.platform import Platform
platform = Platform()
platform.modify_catalog(hrn="hrn:here:data::olp-here:update", name='updated-name',
description='updated-description')
カタログを更新します
カタログ内の記述情報および構造情報を更新します。 カタログを更新するには、更新されたデータと任意の必須フィールドを含むカタログ設定の新しいバージョンを送信します。
from here.platform import Platform
platform = Platform()
platform.update_catalog(hrn='hrn:here:data::olp-here:update', id='update', name='update-name',
summary='update-summary', description='update-description')
カタログを更新 - レイヤーを追加します
update_catalog
このメソッドを使用すると、 1 つ以上の新しいレイヤーを既存のカタログに追加できます。
from here.platform import Platform
platform = Platform()
layer1 = {
"id": "temp-layer1",
"name": "temp-layer1-update-name",
"summary": "temp-layer1-summary",
"description": "temp-layer1-description",
"contentType": "application/json",
"layerType": "volatile",
"partitioning": {"scheme": "generic"},
}
layer2 = {
"id": "temp-layer2",
"name": "temp-layer2-update-name",
"summary": "temp-layer2-summary",
"description": "temp-layer2-description",
"contentType": "application/json",
"layerType": "volatile",
"partitioning": {"scheme": "generic"},
}
platform.update_catalog(catalog.hrn, id=catalog_id, name="updated-name2", summary="updated-summary2", description="updated-description2", layers=[layer1,layer2])
catalog = platform.get_catalog(catalog.hrn)
単一のレイヤーの追加または更新
1 つのレイヤーのみを追加または更新する場合 add_layer
update_layer
は、単純化されたカタログレベルおよびメソッドを使用できます。 詳細については、「カタログ操作」セクションを参照してください。
カタログを削除します
カタログとその中に含まれているレイヤーを削除します。
from here.platform import Platform
platform = Platform()
platform.delete_catalog(hrn='hrn:here:data::olp-here:sample-catalog')
プロジェクトを取得
指定した HERE リソースネーム のプロジェクトオブジェクトを取得します。
from here.platform import Platform
platform = Platform()
project_object = platform.get_project("hrn:here:authorization::olp-here:project/test")
プロジェクトを作成します
from here.platform import Platform
platform = Platform()
created_project_object = platform.create_project("hrn:here:authorization::olp-here:sample-test-project")
プロジェクトを一覧表示します
can_manage
およびに基づいて、プロジェクト管理者またはメンバーになっているプロジェクトのリストを取得 is_member
します。
from here.platform import Platform
platform = Platform()
project_list = platform.list_projects()
プロジェクトを更新します
プロジェクトメタデータを更新します。
from here.platform import Platform
platform = Platform()
project_list = platform.update_project(hrn ="hrn:here:authorization::olp-here:sample-test-project" ,
project_name="sample-project-name", project_desc="sample project desc")
プロジェクトを削除します
プロジェクトとその中に含まれているカタログを削除します。
from here.platform import Platform
platform = Platform()
project_list = platform.delete_project("hrn:here:authorization::olp-here:sample-test-project")
プロジェクトから移動します
指定したプロジェクトから移動します。
from here.platform import Platform
platform = Platform()
project_list = platform.leave_project("hrn:here:authorization::olp-here:sample-test-project")