NRTK-as-a-Service (NRTKaaS)
Dependencies
In addition to NRTK installation, the uvicorn package is required.
Usage
To run the app, open a command prompt and navigate to src/nrtk/interop/maite/api/, then run the command:
uvicorn app:app --host 127.0.0.1 --port 8000 --reload
This command starts the server with the API accessible at https://127.0.0.1:8000.
if the user needs to run at a different port or address, the NRTK_IP variable in api/AUKUS_app.env must be modified to match. For the rest of the example we will use the ip address and port specified above.
To invoke the service with curl, use the following command:
curl -X POST http://127.0.0.1:8000/ -H "Content-Type: application/json" -d '{"key": "value"}'
This command sends a POST request with JSON data {"key": "value"} to the REST server. Replace
http://127.0.0.1:8000 with the appropriate URL if you have specified a different host or port. If successful, you
should receive a response containing a message indicating the success of the operation and the JSON stub.
The expected JSON schema is detailed here.
AUKUS Requirements
In addition to the standard AUKUS Dataset schema, we require that any POST request to the AUKUS endpoint
include a parameter nrtk_config which will point to a .yaml file containing the following NRTK specific
parameters
gsds (List[float]) A list of gsds (pixel/m) where the length of the list is the same as the number of images in the dataset.
theta_keys (List[str]) The PyBSM parameters to be perturbed
thetas (List[List[float]]) The values for each of the parameters specified in “thetas”