Refreshing live data layers
It's common to have data update on a regular basis, such as every week or every month. Instead of having to re-upload and style the new data, it can be very convenient to simply refresh a layer using a new data source.
A layer must have finished uploading successfully before it can be refreshed
Refreshing a layer with a file
Just like regular file uploads, refreshing a layer with a new file is a two-step process:
1. Request a refresh via the Felt API
Perform a POST request to receive an S3 presigned URL which you can later upload your files to:
import requests
# Your API token should look like this:
# api_token = "felt_pat_ABCDEFUDQPAGGNBmX40YNhkCRvvLI3f8/BCwD/g8"
api_token = "<YOUR_API_TOKEN>"
map_id = "<YOUR_MAP_ID>"
layer_id = "<YOUR_LAYER_ID>"
r = requests.post(
f"http://felt.com/api/v2/maps/{map_id}/layers/{layer_id}/refresh",
headers={"Authorization": f"Bearer {api_token}"}
)
assert r.ok
presigned_upload = r.json()import os
from felt_python import refresh_file_layer
# Setting your API token as an env variable can save
# you from repeating it in every function call
os.environ["FELT_API_TOKEN"] = "<YOUR_API_TOKEN>"
map_id = "<YOUR_MAP_ID>"
layer_id = "<YOUR_LAYER_ID>"
new_file_name = "<PATH_TO_NEW_FILE>"
refresh_file_layer(
map_id=map_id,
layer_id=layer_id,
file_name=new_file_name
)2. Upload your file(s) to Amazon s3
Refreshing a layer with a URL
Similar to a URL upload, refreshing an existing URL layer is just a matter of making a single POST request:
Last updated
Was this helpful?