Run an analysis
AnalysisService
Import from @infrared-city/infrared-sdk-ts.
Submits requests already written with the API's own keys; available as
InfraredClient.analyses.
Constructors
Constructor
new AnalysisService(
jobs):AnalysisService
Parameters
| Parameter | Type | Description |
|---|---|---|
jobs |
JobsService |
The jobs service that sends the request. |
Returns
AnalysisService
Methods
execute()
execute(
payload,options?):Promise<Job>
Submits a request that already uses the API's own keys; does not wait.
Returns the accepted Job, or rejects with a TypeError when the payload
is not an object or has no "analysis-type".
Parameters
| Parameter | Type |
|---|---|
payload |
WireAnalysisRequest |
options |
SubmitOptions |
Returns
Promise<Job>
AreaBatchPreview
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
The jobs, estimated time and estimated cost of an area run, from previewAreaBatches.
Properties
AreaJob
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
The job record of one tile inside an area schedule. The schedule's structure is fixed, but the job values are updated as polling proceeds.
Properties
| Property | Modifier | Type | Description |
|---|---|---|---|
binary? |
public |
BinaryAcknowledgement |
The service's acknowledgement of a binary submission, when one was used. |
col |
readonly |
number |
Column of the tile in the tile grid. |
error? |
public |
string |
Why the job failed or was skipped, when it did. |
invalidReference? |
public |
boolean |
True when this accepted reference cannot produce a trusted result. |
jobId? |
public |
string |
The job id assigned by the service, once the submission was accepted. |
lastJobSnapshot? |
public |
Job |
The most recent status the service reported for the job. |
result? |
public |
Record<string, unknown> |
The job's stored result, when one was kept. |
row |
readonly |
number |
Row of the tile in the tile grid. |
status |
public |
TileJobStatus |
Current state of the job. |
tileId |
readonly |
string |
Identifier of the tile this job covers. |
AreaJobsService
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
AreaJobsService =
Pick<JobsService,"prepareSubmission"|"preflightPrepared"|"submitPrepared"|"getStatus"> &object
The job operations an area run needs: prepare, pre-check, submit and read
the status of a job. InfraredClient.jobs satisfies it; a custom or mock
service only has to provide the four required methods.
Type Declaration
| Name | Type | Description |
|---|---|---|
binaryCapability()? |
(signal?) => Promise<BinaryCapability> |
Reads the API's capability document, which decides whether a part of a daylight-factor run can use the binary route. Optional: without it the parts stay on the JSON route. A binary area run reads it once to check its route before the first paid POST. |
captures? |
FacadeCaptures |
The client's cache of facade captures and layouts. Optional: without it nothing is captured. |
releasePreflight()? |
(prepared) => void |
Frees what a pre-check is holding for tiles that are then not submitted. Optional: a service that retains nothing has nothing to free. |
AreaMergeJobsService
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
AreaMergeJobsService =
Pick<JobsService,"getStatus"|"downloadResults"> &object
The jobs service mergeAreaJobs needs: it reads job status and downloads job results.
InfraredClient.jobs satisfies it.
Type Declaration
| Name | Type | Description |
|---|---|---|
captures? |
FacadeCaptures |
The client's own facade capture and layout cache. Optional: when absent, no job inputs were captured and no cell triangles are synthesized. |
AreaMergeOptions
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
Options for mergeAreaJobs.
Extended by
Properties
| Property | Modifier | Type | Description |
|---|---|---|---|
block? |
readonly |
number |
Largest block, in cells per side, that the directional strategies process at once; at least 1. It trades speed against memory only: the result is the same for any value. Default 928. |
logger? |
readonly |
Logger |
Logger that a tile dropped from the merge is warned through. InfraredClient passes its own. |
maxWorkers? |
readonly |
number |
Maximum parallel requests, a positive whole number. Default 5 for status checks and 8 for downloads. |
signal? |
readonly |
AbortSignal |
Aborts the merge when signalled. |
strategy? |
readonly |
"default" | "directional" | "directional_blend" |
How overlapping tiles are blended. Default "default". "directional" and "directional_blend" apply to wind-speed analyses only and require windDirectionDeg. |
windDirectionDeg? |
readonly |
number |
Wind direction in degrees. Required for the directional strategies. |
AreaPreview
Import from @infrared-city/infrared-sdk-ts.
A quick estimate of an area run, from InfraredClient.previewArea.
Extended by
Properties
AreaPreviewWithPricing
Import from @infrared-city/infrared-sdk-ts.
An AreaPreview priced with the API's current price list, from
InfraredClient.previewAreaWithPricing.
Extends
Properties
| Property | Modifier | Type | Description | Inherited from |
|---|---|---|---|---|
estimatedCostTokens |
readonly |
number |
The estimated cost in tokens. | AreaPreview.estimatedCostTokens |
estimatedTimeS |
readonly |
number |
A rough run time in seconds. | AreaPreview.estimatedTimeS |
pricingSource |
readonly |
"remote" | "fallback" |
"remote" when the price came from the API, "fallback" when it could not be fetched and the default was used. |
- |
pricingVersion? |
readonly |
string |
The version of the price list used. Present only when pricingSource is "remote" and the list has a version. |
- |
tileCount |
readonly |
number |
The number of non-empty tiles, each of which is one billed job. | AreaPreview.tileCount |
tokensPerJob |
readonly |
number |
The tokens charged for one job of the previewed analysis. | - |
AreaSchedule
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
Everything needed to follow, merge or retry an area run: its jobs, polygon and the identity
values that guard a retry. It can be saved with areaScheduleToJSON and restored with
areaScheduleFromJSON. Job values stay mutable so polling can update them.
Properties
| Property | Modifier | Type | Description |
|---|---|---|---|
analysisType |
readonly |
string |
The analysis type of the run. |
attempts? |
readonly |
Readonly<Record<string, number>> |
The attempt number of the current job or submission of each tile key. A missing key is attempt 1. |
batchingPolicyVersion? |
readonly |
number |
Version of the facade batching policy; set on facade runs. |
batchMembership? |
readonly |
Readonly<Record<string, readonly string[]>> |
The building ids in each facade batch, by batch key. |
batchSensorCounts? |
readonly |
Readonly<Record<string, number>> |
The number of sensors in each facade batch, by batch key. |
configHash |
readonly |
string |
Hash of the run's configuration. A retry must produce the same value. |
failedSubmissions |
readonly |
readonly string[] |
Ids of the tiles whose submission failed. |
geometryProbeJobIds? |
readonly |
readonly string[] |
Job ids of capability-probe jobs written by older SDK versions. This SDK submits none. A schedule saved by an older version still loads, but cannot be resumed. |
geometryProbeUncertain? |
readonly |
boolean |
Set by older SDK versions when a capability probe had an unknown outcome. |
gridShape |
readonly |
readonly [number, number] |
The tile grid size as [rows, columns]. |
invalidReferenceSubmissions? |
readonly |
readonly string[] |
Referenced jobs retained for billing and support, never polled or merged. |
jobs |
readonly |
ReadonlyMap<string, AreaJob> |
The job record of each tile, by tile id. |
maxSensorsPerJob? |
readonly |
number |
Maximum number of sensors in one job of a facade run. |
polygon |
readonly |
Polygon |
The polygon the run covers. |
runId? |
readonly |
string |
Identifier of the run, made once per schedule and kept across every retryFrom. Absent on a schedule written before this field existed; a retry of one then gets a fresh id. |
scheduleContractVersion? |
readonly |
number |
Version of the schedule record format, used to refuse a retry of a schedule that an older SDK wrote. Absent on a schedule written before the field existed. |
siteIdentity? |
readonly |
string |
Digest of the prepared site inputs; absent on older schedules or without SHA-256. |
submissionAbortStatus |
readonly |
number | null |
The HTTP status that stopped submission early (for example 402), or null when submission was not aborted. |
surfaceFields? |
readonly |
boolean |
True for a facade or roof run. |
terrainContextMarginM? |
readonly |
number |
Margin of terrain context around each tile, in metres. |
tilePositions |
readonly |
readonly TilePosition[] |
The position of each tile in the grid. |
transport? |
readonly |
"json" | "binary" |
How requests were sent: "json" or "binary". |
uncertainSubmissions? |
readonly |
readonly string[] |
Entries whose POST may have been accepted. Never retry these automatically. |
weatherIdentity? |
readonly |
string |
Identity of the weather these tiles were computed against: the submitted weather columns, the location and the time window. Absent for an analysis that reads no weather. A retry compares it with the weather it would submit, so a resume cannot combine tiles computed against different weather into one grid. It is kept on the client and never sent. |
webhookEvents? |
readonly |
readonly string[] |
The job events that trigger webhookUrl. |
webhookUrl? |
readonly |
string |
The URL the API calls when a job reaches one of webhookEvents. |
wireVersion? |
readonly |
1 |
Version of the binary wire format; present only with the binary transport. |
areaScheduleFromJSON
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
areaScheduleFromJSON(
value):AreaSchedule
Rebuilds a frozen schedule from the JSON saved by areaScheduleToJSON, validating it.
Parameters
| Parameter | Type |
|---|---|
value |
unknown |
Returns
Throws
when the JSON is not a valid area schedule.
AreaScheduleJSON
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
The JSON form of an AreaSchedule, as written by areaScheduleToJSON. Its fields match
AreaSchedule, with jobs stored as an array of [tileId, job] pairs.
Properties
| Property | Modifier | Type | Description |
|---|---|---|---|
analysisType |
readonly |
string |
See AreaSchedule.analysisType. |
attempts? |
readonly |
Readonly<Record<string, number>> |
See AreaSchedule.attempts. |
batchingPolicyVersion? |
readonly |
number |
See AreaSchedule.batchingPolicyVersion. |
batchMembership? |
readonly |
Readonly<Record<string, readonly string[]>> |
See AreaSchedule.batchMembership. |
batchSensorCounts? |
readonly |
Readonly<Record<string, number>> |
See AreaSchedule.batchSensorCounts. |
configHash |
readonly |
string |
See AreaSchedule.configHash. |
failedSubmissions |
readonly |
readonly string[] |
See AreaSchedule.failedSubmissions. |
geometryProbeJobIds? |
readonly |
readonly string[] |
See AreaSchedule.geometryProbeJobIds. |
geometryProbeUncertain? |
readonly |
boolean |
See AreaSchedule.geometryProbeUncertain. |
gridShape |
readonly |
readonly [number, number] |
See AreaSchedule.gridShape. |
invalidReferenceSubmissions? |
readonly |
readonly string[] |
See AreaSchedule.invalidReferenceSubmissions. |
jobs |
readonly |
[string, AreaJob][] |
The job record of each tile, as [tileId, job] pairs. |
maxSensorsPerJob? |
readonly |
number |
See AreaSchedule.maxSensorsPerJob. |
polygon |
readonly |
Polygon |
See AreaSchedule.polygon. |
runId? |
readonly |
string |
See AreaSchedule.runId. |
scheduleContractVersion? |
readonly |
number |
See AreaSchedule.scheduleContractVersion. |
siteIdentity? |
readonly |
string |
See AreaSchedule.siteIdentity. |
submissionAbortStatus |
readonly |
number | null |
See AreaSchedule.submissionAbortStatus. |
surfaceFields? |
readonly |
boolean |
See AreaSchedule.surfaceFields. |
terrainContextMarginM? |
readonly |
number |
See AreaSchedule.terrainContextMarginM. |
tilePositions |
readonly |
readonly TilePosition[] |
See AreaSchedule.tilePositions. |
transport? |
readonly |
"json" | "binary" |
See AreaSchedule.transport. |
uncertainSubmissions? |
readonly |
readonly string[] |
See AreaSchedule.uncertainSubmissions. |
weatherIdentity? |
readonly |
string |
See AreaSchedule.weatherIdentity. |
webhookEvents? |
readonly |
readonly string[] |
See AreaSchedule.webhookEvents. |
webhookUrl? |
readonly |
string |
See AreaSchedule.webhookUrl. |
wireVersion? |
readonly |
1 |
See AreaSchedule.wireVersion. |
areaScheduleToJSON
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
areaScheduleToJSON(
schedule):AreaScheduleJSON
Converts a schedule to plain JSON for saving; read it back with areaScheduleFromJSON.
Parameters
| Parameter | Type |
|---|---|
schedule |
AreaSchedule |
Returns
AreaState
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
Progress of an area run: how many of its jobs are in each state.
Properties
AreaStatusService
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
AreaStatusService =
Pick<JobsService,"getStatus"> &object
The status operations checkAreaState and runAreaAndWait need.
InfraredClient.jobs satisfies it.
Type Declaration
| Name | Type | Description |
|---|---|---|
batchedStatusSupported? |
boolean |
Whether a status sweep costs a fixed couple of requests, not one per job. runAreaAndWait uses it to choose its poll interval. |
captures? |
Pick<FacadeCaptures, "forget" | "forgetSchedule"> |
The client's facade capture cache. Optional: the run releases the captures of a job that failed and of a run that fails or is aborted. |
getStatusBatch? |
JobsService["getStatusBatch"] |
Reads the status of many jobs in one request. Optional: without it each job is read on its own. |
AreaSubmissionPlan
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
The plan for one area run: the tiles, the requests built for them and the
identity used to resume the run. submitAreaPlan sends it.
Properties
| Property | Modifier | Type | Description |
|---|---|---|---|
analysisType |
readonly |
string |
The analysis the run performs. |
batchingPolicyVersion? |
readonly |
2 |
- |
batchMembership? |
readonly |
Readonly<Record<string, readonly string[]>> |
- |
batchSensorCounts? |
readonly |
Readonly<Record<string, number>> |
- |
configHash |
readonly |
string |
Digest of the settings the plan was built with. |
entries |
readonly |
readonly SubmissionEntry[] |
The requests to send, one per job. |
gridShape |
readonly |
readonly [number, number] |
Rows and columns of the tile grid. |
localCellTris? |
readonly |
boolean |
Whether the caller asked for cell-tris, which the merge then builds locally. Every surface run keeps its layout capture for the outline; this flag only asks for the triangles. |
plannedJobCount? |
readonly |
number |
The number of jobs the run will submit. It equals the tile count on a grid run but can be larger on a facade run, where a tile can split into several separately billed jobs. When absent, use entries.length. |
polygon |
readonly |
Polygon |
The area the run covers. |
retryContext? |
readonly |
AreaRetryContext |
Present only when the run continues an earlier one with retryFrom. |
runId |
readonly |
string |
Identifies the run; each job's idempotency key is derived from it, and the schedule keeps it. |
siteIdentity? |
readonly |
string |
Digest of the site inputs; a resumed run checks it before it resubmits paid jobs. |
surfaceFields |
readonly |
boolean |
Whether the analysis returns per-surface fields rather than a grid. |
terrainContextMarginM |
readonly |
number |
- |
tilePositions |
readonly |
readonly TilePosition[] |
Where each tile sits in the grid. |
weatherIdentity? |
readonly |
string |
The weather this plan's payloads were built from, if it is provable. |
checkAreaState
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
checkAreaState(
service,schedule,options?):Promise<AreaState>
Poll every open job of a schedule once and return the resulting progress.
Status is read in batches of up to 50 jobs where the service supports it, and per job
otherwise. Each job record is updated in place. A job whose status request keeps failing is
marked "skipped" after repeated failures; a rate limit or temporary server error is never
counted against a job.
Parameters
| Parameter | Type | Description |
|---|---|---|
service |
AreaStatusService |
Reads job status, for example client.jobs. |
schedule |
Pick<AreaSchedule, "jobs"> |
The schedule to poll. Only its jobs are read. |
options |
CheckAreaStateOptions |
Concurrency, cancellation and a progress callback. |
Returns
Promise<AreaState>
The counts of completed, failed, skipped, pending and running jobs.
Throws
when options.maxWorkers is not a positive whole number.
Throws
when options.signal is aborted; the abort reason is thrown.
CheckAreaStateOptions
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
Options for checkAreaState.
Properties
computeAreaState
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
computeAreaState(
schedule):AreaState
Counts the jobs of a schedule by status; isComplete is true when none is pending or running.
Parameters
| Parameter | Type |
|---|---|
schedule |
Pick<AreaSchedule, "jobs"> |
Returns
freePreparedSites
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
freePreparedSites():
number
Release every prepared site this realm holds; returns how many it held.
A long-lived process that has finished with a site can drop tens of
megabytes here instead of waiting for the byte bound to evict them. The
next runArea on that site prepares it again.
Returns
number
The number of sites that were held.
freezeAreaSchedule
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
freezeAreaSchedule(
schedule):AreaSchedule
Returns a frozen copy of a schedule; its lists, polygon and job map cannot be changed.
Parameters
| Parameter | Type |
|---|---|
schedule |
AreaSchedule |
Returns
Job
Import from @infrared-city/infrared-sdk-ts.
A submitted analysis job, as reported by the service.
Properties
| Property | Modifier | Type | Description |
|---|---|---|---|
binary? |
readonly |
BinaryAcknowledgement |
The service's acknowledgement, when the job was submitted over the binary transport. |
error? |
readonly |
string |
The failure message, when the job failed. |
finishedAt? |
readonly |
string |
When the job finished, when reported. |
jobId |
readonly |
string |
The job's unique id. |
modelName |
readonly |
string |
The analysis the job runs; an empty string when the service did not report it. |
requestedAt |
readonly |
string |
When the job was requested, as reported by the service; empty when not reported. |
resultsUrl? |
readonly |
string |
Link to download the results from, when the service reports one. |
startedAt? |
readonly |
string |
When the job started running, when reported. |
status |
readonly |
JobStatus |
Current status of the job. |
JobsService
Import from @infrared-city/infrared-sdk-ts.
Submits analysis jobs, reads their status and downloads their results;
available as InfraredClient.jobs.
Constructors
Constructor
new JobsService(
options):JobsService
Parameters
| Parameter | Type | Description |
|---|---|---|
options |
JobsServiceOptions |
Base URL, credentials and transport settings. |
Returns
JobsService
Throws
when no fetch is available or bigPayloadThresholdBytes is invalid.
Properties
captures
readonlycaptures:FacadeCaptures
This client's facade captures, in one capture store. They live only as long as the
client: nothing is written to disk and nothing is saved in an AreaSchedule. The client has
no dispose: call captures.free() when you are done with it.
Accessors
batchedStatusSupported
Get Signature
get batchedStatusSupported():
boolean
Whether the API's route for reading many job statuses at once has
answered this client. false until it has, and for good once the API
shows it lacks the route; area runs use it to choose their poll interval.
Returns
boolean
Methods
binaryCapability()
binaryCapability(
signal?):Promise<BinaryCapability>
The API's live capability document, which says whether a model's binary route is available. It is cached for a short time, so repeated calls are cheap.
Parameters
| Parameter | Type |
|---|---|
signal? |
AbortSignal |
Returns
Promise<BinaryCapability>
decompress()
decompress(
content,options?):ParsedResult
Unpacks a downloaded result archive and returns the parsed result.
Parameters
| Parameter | Type |
|---|---|
content |
Uint8Array |
options? |
ParseResultOptions |
Returns
downloadResults()
downloadResults(
jobId,options?):Promise<DownloadResult>
Downloads the result archive of a finished job, retrying a failed
download a few times. Pass options.job to skip reading the status.
Parameters
| Parameter | Type |
|---|---|
jobId |
string |
options |
DownloadResultsOptions |
Returns
Promise<DownloadResult>
Throws
when the job has not succeeded.
Throws
when options.job is a different job.
getStatus()
getStatus(
jobId,options?):Promise<Job>
Reads one job's status.
Parameters
| Parameter | Type |
|---|---|
jobId |
string |
options |
{ signal?: AbortSignal; } |
options.signal? |
AbortSignal |
Returns
Promise<Job>
getStatusBatch()
getStatusBatch(
jobIds,options?):Promise<StatusSweep>
Reads many job statuses at once, 50 ids per request. Ids it could not
settle come back in unanswered for you to ask about one by one; it does
not throw because of an API problem. An API without the route is asked
once and never again.
Parameters
| Parameter | Type |
|---|---|
jobIds |
readonly string[] |
options |
{ maxWorkers?: number; signal?: AbortSignal; } |
options.maxWorkers? |
number |
options.signal? |
AbortSignal |
Returns
Promise<StatusSweep>
preflightPrepared()
preflightPrepared(
prepared,options?):Promise<void>
Finishes all validation and encoding of a binary submission before any
paid request is sent. The encoded bytes are kept (within a memory budget)
and submitPrepared sends exactly those bytes. If you pre-check a whole
plan and then do not submit part of it, call releasePreflight for the
rest.
Parameters
| Parameter | Type |
|---|---|
prepared |
PreparedSubmission |
options |
{ retain?: boolean; signal?: AbortSignal; } |
options.retain? |
boolean |
options.signal? |
AbortSignal |
Returns
Promise<void>
prepareSubmission()
prepareSubmission(
analysisType,payload,options?):PreparedSubmission
Validates and encodes a request without sending it; returns the PreparedSubmission.
Parameters
| Parameter | Type |
|---|---|
analysisType |
string |
payload |
Readonly<Record<string, unknown>> |
options |
Omit<SubmitOptions, "signal"> |
Returns
releasePreflight()
releasePreflight(
prepared):void
Frees what preflightPrepared is holding for a submission that will not happen.
Parameters
| Parameter | Type |
|---|---|
prepared |
PreparedSubmission |
Returns
void
submit()
submit(
analysisType,payload,options?):Promise<Job>
Prepares and sends one analysis request; returns the accepted Job
without waiting for it. The request is sent as binary unless
options.transport is "json" or the analysis has no binary route.
Parameters
| Parameter | Type |
|---|---|
analysisType |
string |
payload |
Readonly<Record<string, unknown>> |
options |
SubmitOptions |
Returns
Promise<Job>
submitPrepared()
submitPrepared(
prepared,options?):Promise<Job>
Sends a PreparedSubmission and returns the accepted Job; the options are used by area runs.
Parameters
| Parameter | Type | Description |
|---|---|---|
prepared |
PreparedSubmission |
- |
options |
{ beforeDispatch?: () => void; idempotencyKey?: string; signal?: AbortSignal; stages?: { post: <T>(send) => Promise<T>; uploaded: () => void; }; } |
- |
options.beforeDispatch? |
() => void |
- |
options.idempotencyKey? |
string |
The Idempotency-Key that makes a retried send safe; unset for a single submit. |
options.signal? |
AbortSignal |
- |
options.stages? |
{ post: <T>(send) => Promise<T>; uploaded: () => void; } |
The upload and POST slots of one area run; unset for a single submit. |
options.stages.post |
<T>(send) => Promise<T> |
- |
options.stages.uploaded |
() => void |
- |
Returns
Promise<Job>
waitForCompletion()
waitForCompletion(
jobId,options?):Promise<Job>
Polls a job until it succeeds or fails. options.timeout is in seconds
(default 900).
Parameters
| Parameter | Type |
|---|---|
jobId |
string |
options |
WaitForCompletionOptions |
Returns
Promise<Job>
The finished Job.
Throws
when the job fails.
Throws
when the timeout passes first.
Throws
when options.signal aborts the wait.
JobStatus
Import from @infrared-city/infrared-sdk-ts.
One of the JobStatus values: "pending", "running", "succeeded",
"failed" or "unknown".
constJobStatus:object
The states a job can be in: pending, running, succeeded, failed, or
unknown when the service reports a status the SDK does not recognise.
Type Declaration
| Name | Type | Default value |
|---|---|---|
Failed |
"failed" |
"failed" |
Pending |
"pending" |
"pending" |
Running |
"running" |
"running" |
Succeeded |
"succeeded" |
"succeeded" |
Unknown |
"unknown" |
"unknown" |
KernelPart
Import from @infrared-city/infrared-sdk-ts.
One part of a parts plan: a job that covers some of the request's floors.
Properties
KernelPartsPlan
Import from @infrared-city/infrared-sdk-ts.
The plan that splits a daylight-factor request into parts, parsed.
Properties
| Property | Modifier | Type | Description |
|---|---|---|---|
notes |
readonly |
readonly string[] |
Notes on inputs the analysis accepts silently. |
parts |
readonly |
readonly KernelPart[] |
The parts, in plan order. |
target |
readonly |
number |
The target the plan was made for. |
tier |
readonly |
string |
The request tier the plan was made for, for example "floors" or "buildings". |
total_sensors |
readonly |
number |
Sensors of the whole request. |
unsplit_reason |
readonly |
string | null |
Why the request was sent as one part, when it was; otherwise null. |
mergeAreaJobs
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
mergeAreaJobs(
jobsService,schedule,options?):Promise<AreaResult>
Poll a grid schedule once, download the results of its completed tiles and merge them into one grid.
Calling it again after a failure gives tiles that were retired by repeated status errors one more chance, since their jobs usually finished.
Parameters
| Parameter | Type | Description |
|---|---|---|
jobsService |
AreaMergeJobsService |
Reads job status and downloads results, for example client.jobs. |
schedule |
AreaSchedule |
The schedule returned by runArea. |
options |
AreaMergeOptions |
Blend strategy, concurrency, cancellation and logging. |
Returns
Promise<AreaResult>
The merged grid with its shape, legend range and any failed or skipped tiles.
Throws
when the schedule is a facade or surface schedule, contains an uncertain
or invalid geometry reference, or options ask for a directional strategy on a
non-wind analysis or without windDirectionDeg.
Throws
when any tile failed, was skipped or could not be downloaded.
MergePartsOptions
Import from @infrared-city/infrared-sdk-ts.
Options for joining the results of a parts run.
Properties
| Property | Modifier | Type | Description |
|---|---|---|---|
logger? |
readonly |
Logger |
Where a JSON fallback of the join is logged. |
maxWorkers? |
readonly |
number |
Width of the download pool. |
resultFormat? |
readonly |
DaylightResultFormat |
As PartsOptions.resultFormat. Unset: DEFAULT_DAYLIGHT_RESULT_FORMAT. |
signal? |
readonly |
AbortSignal |
Aborts the polling and the downloads. |
mergeSurfaceAreaJobs
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
mergeSurfaceAreaJobs(
jobsService,schedule,options?):Promise<SurfaceColumns>
Polls a surface schedule once, downloads the results of all its jobs and joins them into one set of surface columns.
Every job must have completed: any failed or missing submission, or any job still pending or running, makes the merge fail instead of returning a partial result. Calling it again after a failure gives tiles that were retired by repeated status errors one more chance. A schedule with no jobs gives empty columns.
Parameters
| Parameter | Type | Description |
|---|---|---|
jobsService |
AreaMergeJobsService |
Reads job status and downloads results, for example client.jobs. |
schedule |
AreaSchedule |
The schedule returned by runArea for a surface analysis. |
options |
Pick<AreaMergeOptions, "maxWorkers" | "signal" | "logger"> |
maxWorkers (concurrent downloads), signal (cancellation) and logger. |
Returns
Promise<SurfaceColumns>
The merged surface columns.
Throws
when the schedule is not a surface schedule, contains an uncertain or invalid geometry reference, has failed or uncertain submissions, has jobs that did not succeed, or a download or decode failed (the cause is attached).
Throws
when options.signal is aborted: the abort reason.
PartsOptions
Import from @infrared-city/infrared-sdk-ts.
Options for submitting a request as parts.
Extended by
Properties
| Property | Modifier | Type | Description |
|---|---|---|---|
maxParts? |
readonly |
number |
The most jobs the run may submit. 1 turns splitting off: the request is sent as one job, exactly as analyses.execute sends it. A plan with more parts than a larger value is refused before any request. Default: no limit. |
maxWorkers? |
readonly |
number |
Width of the submit and download pools (default 8). |
onAccepted? |
readonly |
(jobId, partKey) => void |
Called with the job id and part key of each part the server accepts. An observer only: use it to store job ids before the run returns. |
onProgress? |
readonly |
(state) => void |
Called with the progress of the run each time the parts are polled. |
resultFormat? |
readonly |
DaylightResultFormat |
The format of a daylight-factor result. "irbf": a DaylightFactorResult (typed-array views, with toJson() on demand); parts ask the server for binary results when it offers them, else JSON, which is converted into the same frame. "json": the JSON value. Unset: DEFAULT_DAYLIGHT_RESULT_FORMAT. Other analyses ignore it. |
retryFrom? |
readonly |
PartsSchedule |
A schedule from an earlier run of the same request (its requestDigest must match). Only the parts that failed (a failed submission or a failed job) are sent again; a part whose submission outcome is unknown never is. |
signal? |
readonly |
AbortSignal |
Aborts the run. |
transport? |
readonly |
"json" | "binary" |
How the parts are sent, as for analyses.execute. Unset (the default) picks the route automatically from what the server supports: the binary route, where the scene is uploaded once, or JSON. "json" keeps every part on JSON; "binary" sends the request as a single job and never splits it. |
webhookEvents? |
readonly |
readonly string[] |
The job events that trigger webhookUrl. |
webhookUrl? |
readonly |
string |
A URL the API calls when a job reaches one of webhookEvents. |
PartsPreview
Import from @infrared-city/infrared-sdk-ts.
The offline answer of previewParts: what a run would submit and bill.
Properties
PartsSchedule
Import from @infrared-city/infrared-sdk-ts.
A submitted parts run.
Like an AreaSchedule, its job records are updated in place while the run is polled.
Keep it to merge the run later or to retry the failed parts.
Properties
| Property | Modifier | Type | Description |
|---|---|---|---|
analysisType |
readonly |
string |
The analysis type of the run. |
failedSubmissions |
readonly |
readonly string[] |
Parts whose submission failed. |
jobs |
readonly |
ReadonlyMap<string, AreaJob> |
The job of each part, by part key. |
partKeys |
readonly |
readonly string[] |
Part keys, in plan order. |
plan |
readonly |
string |
The plan of the run, as text. Merging reads it. |
requestDigest? |
readonly |
string |
sha256: digest of the request's JSON bytes; a retryFrom must match it. Absent when the runtime has no SHA-256; such a schedule cannot be retried. |
resultFormat? |
readonly |
DaylightResultFormat |
The daylight-factor result format the run chose. mergeParts uses it when the caller names none. Absent on an older schedule. |
submissionAbortStatus |
readonly |
number | null |
HTTP status that stopped the submission early, or null when it was not stopped. |
uncertainSubmissions |
readonly |
readonly string[] |
Parts whose submission may have been accepted. Never resubmitted automatically. |
PartsWaitOptions
Import from @infrared-city/infrared-sdk-ts.
Options for running parts and waiting for them to finish.
Extends
Extended by
Properties
| Property | Modifier | Type | Description | Inherited from |
|---|---|---|---|---|
maxParts? |
readonly |
number |
The most jobs the run may submit. 1 turns splitting off: the request is sent as one job, exactly as analyses.execute sends it. A plan with more parts than a larger value is refused before any request. Default: no limit. |
PartsOptions.maxParts |
maxWorkers? |
readonly |
number |
Width of the submit and download pools (default 8). | PartsOptions.maxWorkers |
onAccepted? |
readonly |
(jobId, partKey) => void |
Called with the job id and part key of each part the server accepts. An observer only: use it to store job ids before the run returns. | PartsOptions.onAccepted |
onProgress? |
readonly |
(state) => void |
Called with the progress of the run each time the parts are polled. | PartsOptions.onProgress |
resultFormat? |
readonly |
DaylightResultFormat |
The format of a daylight-factor result. "irbf": a DaylightFactorResult (typed-array views, with toJson() on demand); parts ask the server for binary results when it offers them, else JSON, which is converted into the same frame. "json": the JSON value. Unset: DEFAULT_DAYLIGHT_RESULT_FORMAT. Other analyses ignore it. |
PartsOptions.resultFormat |
retryFrom? |
readonly |
PartsSchedule |
A schedule from an earlier run of the same request (its requestDigest must match). Only the parts that failed (a failed submission or a failed job) are sent again; a part whose submission outcome is unknown never is. |
PartsOptions.retryFrom |
signal? |
readonly |
AbortSignal |
Aborts the run. | PartsOptions.signal |
timeout? |
readonly |
number |
Seconds to wait for every part. Default 900, the same as for one job. Checked before any request is sent. | - |
transport? |
readonly |
"json" | "binary" |
How the parts are sent, as for analyses.execute. Unset (the default) picks the route automatically from what the server supports: the binary route, where the scene is uploaded once, or JSON. "json" keeps every part on JSON; "binary" sends the request as a single job and never splits it. |
PartsOptions.transport |
webhookEvents? |
readonly |
readonly string[] |
The job events that trigger webhookUrl. |
PartsOptions.webhookEvents |
webhookUrl? |
readonly |
string |
A URL the API calls when a job reaches one of webhookEvents. |
PartsOptions.webhookUrl |
prepareAnalysisPayload
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
prepareAnalysisPayload(
input):Record<string,unknown>
Turns an analysis input into the request body for one analysis, with wire field names. Entity and metadata maps pass through unchanged.
Parameters
| Parameter | Type | Description |
|---|---|---|
input |
Readonly<Record<string, unknown>> |
The analysis input, with analysisType (or the wire key analysis-type). |
Returns
Record<string, unknown>
The request body.
Throws
when the input is invalid for its analysis type.
prepareAreaPayload
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
constprepareAreaPayload: (input) =>Record<string,unknown> =prepareAnalysisPayload
Alias of prepareAnalysisPayload.
Turns an analysis input into the request body for one analysis, with wire field names. Entity and metadata maps pass through unchanged.
Parameters
| Parameter | Type | Description |
|---|---|---|
input |
Readonly<Record<string, unknown>> |
The analysis input, with analysisType (or the wire key analysis-type). |
Returns
Record<string, unknown>
The request body.
Throws
when the input is invalid for its analysis type.
PreparedSubmission
Import from @infrared-city/infrared-sdk-ts.
A validated, mesh-packed request body that is ready to be submitted.
Properties
preparedWeatherIdentity
Import from @infrared-city/infrared-sdk-ts.
preparedWeatherIdentity(
payload):string
The weather identity of a prepared payload: the value runArea records on the schedule,
computed without submitting anything.
Pass the output of prepareAnalysisPayload or prepareAreaPayload, not a runArea input.
The prepared payload holds the weather arrays whichever source produced them: a parsed file,
the public catalog's records or your own arrays.
Parameters
| Parameter | Type | Description |
|---|---|---|
payload |
Readonly<Record<string, unknown>> |
A prepared analysis payload. |
Returns
string
The identity string of the weather the payload submits.
Throws
when the payload carries no location, no time window or no weather column.
previewAreaBatches
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
previewAreaBatches(
service,input,polygon,options?):Promise<AreaBatchPreview>
Preview the jobs a runArea(service, input, polygon, options) call would submit, without
submitting anything.
It reports the real number of jobs, which on a facade (analysisSurfaces) request can exceed
the tile count because a tile may split into several billed batches. On a grid request it
gives one job per tile, like previewArea. Most callers want
client.previewAreaBatches(input, polygon, options), which passes client.jobs as service.
Parameters
| Parameter | Type | Description |
|---|---|---|
service |
AreaJobsService |
The jobs service the plan is prepared against, for example client.jobs. |
input |
RunAreaInputLike |
The analysis request fields. |
polygon |
Polygon |
The area to analyse. |
options |
RunAreaOptions |
The same run options runArea takes. |
Returns
Promise<AreaBatchPreview>
The tile count, planned job count, estimated time and cost, and the sensor count for a facade request.
RunAndWaitOptions
Import from @infrared-city/infrared-sdk-ts.
Options for running an analysis and waiting for its result, when the request may be split into parts.
Extends
Properties
| Property | Modifier | Type | Description | Inherited from |
|---|---|---|---|---|
archive? |
readonly |
DecompressResultArchiveOptions |
Size limits for the downloaded result archive (as jobs.decompress), for every analysis. |
- |
maxParts? |
readonly |
number |
The most jobs the run may submit. 1 turns splitting off: the request is sent as one job, exactly as analyses.execute sends it. A plan with more parts than a larger value is refused before any request. Default: no limit. |
PartsWaitOptions.maxParts |
maxWorkers? |
readonly |
number |
Width of the submit and download pools (default 8). | PartsWaitOptions.maxWorkers |
onAccepted? |
readonly |
(jobId, partKey) => void |
Called with the job id and part key of each part the server accepts. An observer only: use it to store job ids before the run returns. | PartsWaitOptions.onAccepted |
onPoll? |
readonly |
OnPollCallback |
Called with one job's status after each poll. Not called for a multi-part run, which polls all parts together: use onProgress there. |
- |
onProgress? |
readonly |
(state) => void |
Called with the progress of the run each time the parts are polled. | PartsWaitOptions.onProgress |
resultFormat? |
readonly |
DaylightResultFormat |
The format of a daylight-factor result. "irbf": a DaylightFactorResult (typed-array views, with toJson() on demand); parts ask the server for binary results when it offers them, else JSON, which is converted into the same frame. "json": the JSON value. Unset: DEFAULT_DAYLIGHT_RESULT_FORMAT. Other analyses ignore it. |
PartsWaitOptions.resultFormat |
retryFrom? |
readonly |
PartsSchedule |
A schedule from an earlier run of the same request (its requestDigest must match). Only the parts that failed (a failed submission or a failed job) are sent again; a part whose submission outcome is unknown never is. |
PartsWaitOptions.retryFrom |
signal? |
readonly |
AbortSignal |
Aborts the run. | PartsWaitOptions.signal |
timeout? |
readonly |
number |
Seconds to wait for every part. Default 900, the same as for one job. Checked before any request is sent. | PartsWaitOptions.timeout |
transport? |
readonly |
"json" | "binary" |
How the parts are sent, as for analyses.execute. Unset (the default) picks the route automatically from what the server supports: the binary route, where the scene is uploaded once, or JSON. "json" keeps every part on JSON; "binary" sends the request as a single job and never splits it. |
PartsWaitOptions.transport |
webhookEvents? |
readonly |
readonly string[] |
The job events that trigger webhookUrl. |
PartsWaitOptions.webhookEvents |
webhookUrl? |
readonly |
string |
A URL the API calls when a job reaches one of webhookEvents. |
PartsWaitOptions.webhookUrl |
runArea
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
runArea(
service,input,polygon,options?):Promise<AreaSchedule>
Plans an area run for a polygon and submits it: tiles the polygon, builds each tile's request and sends one job per tile (or per batch of facade sensors).
Returns as soon as the jobs are submitted; poll the jobs with checkAreaState and merge the
results with mergeAreaJobs, or use InfraredClient.runAreaAndWait to do all three. Every
tile is a billed job, so size the run first with previewAreaBatches.
Parameters
| Parameter | Type | Description |
|---|---|---|
service |
AreaJobsService |
The jobs service that sends the jobs, for example client.jobs. |
input |
RunAreaInput |
The analysis request: analysisType plus the analysis's own parameters. |
polygon |
Polygon |
The GeoJSON Polygon to analyse. |
options |
RunAreaOptions |
The run options (see RunAreaOptions). |
Returns
Promise<AreaSchedule>
The frozen schedule of the run, to poll, merge or save.
Throws
when the unsupported binaryResults option is passed, or
terrainContextMarginM is not a finite non-negative number.
Throws
when retryFrom was saved with a different transport or terrain margin.
Throws
when the API accepted a job with an invalid geometry reference.
RunAreaAndWaitOptions
Import from @infrared-city/infrared-sdk-ts.
Options for InfraredClient.runAreaAndWait: everything runArea takes,
plus the merge options.
Extends
Properties
| Property | Modifier | Type | Description | Inherited from |
|---|---|---|---|---|
areaTimeout? |
readonly |
number |
runAreaAndWait only: seconds to wait for the whole run before it throws AreaTimeoutError. A positive number; default 3600. |
RunAreaOptions.areaTimeout |
block? |
readonly |
number |
Largest block, in cells per side, that the directional strategies process at once; at least 1. It trades speed against memory only: the result is the same for any value. Default 928. | AreaMergeOptions.block |
buildings? |
readonly |
AreaBuildings | Readonly<Record<string, unknown>> |
The target buildings: an AreaBuildings from BuildingsService.getBuildingsInArea, or a bare {buildingId: mesh} map. An AreaBuildings carries origin — the frame its bodies are in — and the payload path re-anchors from that origin into this run's site frame, so buildings acquired once for a large area can be run as several sub-areas. A bare map carries no frame and is assumed to be in this polygon's frame already: acquire with the same polygon you run. |
RunAreaOptions.buildings |
groundMaterials? |
readonly |
Readonly<Record<string, unknown>> | AreaGroundMaterials |
The ground materials: an AreaGroundMaterials from GroundMaterialsService.getArea, or a bare {layer: collection} map. The acquired object carries its read margin, checked as for vegetation. |
RunAreaOptions.groundMaterials |
logger? |
readonly |
Logger |
Receives warnings, such as an unrecognised request key. InfraredClient passes its own logger. |
RunAreaOptions.logger |
maxSensorsPerJob? |
readonly |
number |
Facade runs only: the most retained sensors one job may carry, a whole number from 1 to 250 000 (the default target). A smaller cap gives more, smaller jobs; each is still an exact, verified count, so a preview with the same cap reports the same jobs and sensors. A retry may omit it or repeat the saved value; a different value is refused. | RunAreaOptions.maxSensorsPerJob |
maxTilesOverride? |
readonly |
number |
Raises the limit on how many non-empty tiles one run may cover. A run over the limit is refused before anything is submitted, and the message gives the number to pass here. Each tile is a billed job, so size the run with a preview first. | RunAreaOptions.maxTilesOverride |
maxWorkers? |
readonly |
number |
The most requests sent in parallel while submitting jobs. A positive whole number; default 8. Status polling in runAreaAndWait has its own default of 5 for the same option. |
RunAreaOptions.maxWorkers |
onAccepted? |
readonly |
(jobId, tileKey) => void |
Called once for each job id the run records, at the moment it records it, with the tile key. A synchronous observer: it only reports, the run does not wait for a returned promise, and an error thrown here is ignored, so the schedule never changes. Use it to store accepted job ids before runArea returns (the worker helper sends them to the page this way); a failed store is the caller's to retry. |
RunAreaOptions.onAccepted |
onProgress? |
readonly |
(state) => void |
Called with the run's counts after each submission and status update. | RunAreaOptions.onProgress |
retries? |
readonly |
number |
Retry rounds after the run completes, when it left submissions that failed, jobs that failed while computing, or submissions whose outcome is unknown. Default 1; 0 turns retrying off. Each round resubmits only what needs it and waits again; a round that resubmits nothing ends the retrying early. A run is never retried after the API refused it with status 402 (payment required). |
- |
retryFrom? |
readonly |
AreaSchedule |
The schedule of an earlier run of the same area and analysis. The run continues from that saved schedule instead of starting a new one. | RunAreaOptions.retryFrom |
signal? |
readonly |
AbortSignal |
Aborts the run. | RunAreaOptions.signal |
strategy? |
readonly |
"default" | "directional" | "directional_blend" |
How overlapping tiles are blended. Default "default". "directional" and "directional_blend" apply to wind-speed analyses only and require windDirectionDeg. |
AreaMergeOptions.strategy |
terrainContext? |
readonly |
TerrainContext |
Not for callers: the SDK builds the terrain context itself. Passing it is refused; use terrainContextMarginM instead. |
RunAreaOptions.terrainContext |
terrainContextMarginM? |
readonly |
number |
Metres of terrain read beyond each tile so its edges are seated on real ground. Default 128; the analysis's own minimum wins when it is larger. A retry must repeat the saved value. | RunAreaOptions.terrainContextMarginM |
transport? |
readonly |
"json" | "binary" |
How the request is sent. Unset: binary, or JSON for an analysis that has no binary route; a retry keeps the transport of the run it continues. Pass "json" to force JSON. |
RunAreaOptions.transport |
vegetation? |
readonly |
Readonly<Record<string, unknown>> | AreaVegetation |
The trees: an AreaVegetation from VegetationService.getArea, or a bare {key: feature} map. The acquired object carries the read margin it was fetched with, and a run whose analysis needs a wider one is refused. |
RunAreaOptions.vegetation |
webhookEvents? |
readonly |
readonly string[] |
The job events that trigger webhookUrl. |
RunAreaOptions.webhookEvents |
webhookUrl? |
readonly |
string |
A URL the API calls when a job reaches one of webhookEvents. |
RunAreaOptions.webhookUrl |
windDirectionDeg? |
readonly |
number |
Wind direction in degrees. Required for the directional strategies. | AreaMergeOptions.windDirectionDeg |
RunAreaInput
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
RunAreaInput =
Readonly<Record<string,unknown>> & {analysis-type?:never;analysisType:string; } | {analysis-type:string;analysisType?:never; }
The analysis request runArea takes: analysisType (or the wire key
"analysis-type") plus the analysis's own parameters.
RunAreaInputLike
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
RunAreaInputLike =
Readonly<Record<string,unknown>>
The analysis request fields previewAreaBatches accepts: an object keyed by request field
name.
RunAreaOptions
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
Options for runArea, runAreaAndWait and previewAreaBatches.
Extended by
Properties
| Property | Modifier | Type | Description |
|---|---|---|---|
areaTimeout? |
readonly |
number |
runAreaAndWait only: seconds to wait for the whole run before it throws AreaTimeoutError. A positive number; default 3600. |
buildings? |
readonly |
AreaBuildings | Readonly<Record<string, unknown>> |
The target buildings: an AreaBuildings from BuildingsService.getBuildingsInArea, or a bare {buildingId: mesh} map. An AreaBuildings carries origin — the frame its bodies are in — and the payload path re-anchors from that origin into this run's site frame, so buildings acquired once for a large area can be run as several sub-areas. A bare map carries no frame and is assumed to be in this polygon's frame already: acquire with the same polygon you run. |
groundMaterials? |
readonly |
Readonly<Record<string, unknown>> | AreaGroundMaterials |
The ground materials: an AreaGroundMaterials from GroundMaterialsService.getArea, or a bare {layer: collection} map. The acquired object carries its read margin, checked as for vegetation. |
logger? |
readonly |
Logger |
Receives warnings, such as an unrecognised request key. InfraredClient passes its own logger. |
maxSensorsPerJob? |
readonly |
number |
Facade runs only: the most retained sensors one job may carry, a whole number from 1 to 250 000 (the default target). A smaller cap gives more, smaller jobs; each is still an exact, verified count, so a preview with the same cap reports the same jobs and sensors. A retry may omit it or repeat the saved value; a different value is refused. |
maxTilesOverride? |
readonly |
number |
Raises the limit on how many non-empty tiles one run may cover. A run over the limit is refused before anything is submitted, and the message gives the number to pass here. Each tile is a billed job, so size the run with a preview first. |
maxWorkers? |
readonly |
number |
The most requests sent in parallel while submitting jobs. A positive whole number; default 8. Status polling in runAreaAndWait has its own default of 5 for the same option. |
onAccepted? |
readonly |
(jobId, tileKey) => void |
Called once for each job id the run records, at the moment it records it, with the tile key. A synchronous observer: it only reports, the run does not wait for a returned promise, and an error thrown here is ignored, so the schedule never changes. Use it to store accepted job ids before runArea returns (the worker helper sends them to the page this way); a failed store is the caller's to retry. |
onProgress? |
readonly |
(state) => void |
Called with the run's counts after each submission and status update. |
retryFrom? |
readonly |
AreaSchedule |
The schedule of an earlier run of the same area and analysis. The run continues from that saved schedule instead of starting a new one. |
signal? |
readonly |
AbortSignal |
Aborts the run. |
terrainContext? |
readonly |
TerrainContext |
Not for callers: the SDK builds the terrain context itself. Passing it is refused; use terrainContextMarginM instead. |
terrainContextMarginM? |
readonly |
number |
Metres of terrain read beyond each tile so its edges are seated on real ground. Default 128; the analysis's own minimum wins when it is larger. A retry must repeat the saved value. |
transport? |
readonly |
"json" | "binary" |
How the request is sent. Unset: binary, or JSON for an analysis that has no binary route; a retry keeps the transport of the run it continues. Pass "json" to force JSON. |
vegetation? |
readonly |
Readonly<Record<string, unknown>> | AreaVegetation |
The trees: an AreaVegetation from VegetationService.getArea, or a bare {key: feature} map. The acquired object carries the read margin it was fetched with, and a run whose analysis needs a wider one is refused. |
webhookEvents? |
readonly |
readonly string[] |
The job events that trigger webhookUrl. |
webhookUrl? |
readonly |
string |
A URL the API calls when a job reaches one of webhookEvents. |
SCHEDULE_CONTRACT_VERSION
Import from @infrared-city/infrared-sdk-ts.
constSCHEDULE_CONTRACT_VERSION:11=11
The version of the schedule record format this SDK writes into new schedules
(AreaSchedule.scheduleContractVersion).
It is raised whenever a field a retry guard depends on is added or changes meaning. A retry of a schedule written under an older version may be refused by name, with guidance to start a fresh run.
StatusSweep
Import from @infrared-city/infrared-sdk-ts.
The answer to one batched status request for many jobs.
Properties
| Property | Modifier | Type | Description |
|---|---|---|---|
batched |
readonly |
boolean |
Whether the service answered in the batched form. |
failedIds? |
readonly |
readonly string[] |
Ids deferred to the next sweep because the service answered 429 or a 5xx. |
lacking |
readonly |
boolean |
Whether the service showed that it does not offer batched status. |
retryAfterS? |
readonly |
number |
The longest Retry-After those failures carried, in seconds. |
statuses |
readonly |
Map<string, Job> |
The status of each answered job, keyed by job id. |
unanswered |
readonly |
string[] |
Ids this request did not settle; read each of these with a single-job status call. |
submitAreaPlan
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
submitAreaPlan(
service,plan,options?):Promise<AreaSchedule>
Submits an already validated plan, one job per entry, and returns the schedule of the run.
A request whose outcome is unknown is not retried; it is recorded in the schedule as uncertain
so you can decide. Failed submissions are recorded too. Pass options.retryFrom to continue a
saved schedule.
Parameters
| Parameter | Type | Description |
|---|---|---|
service |
AreaJobsService |
The jobs service that sends the jobs, for example client.jobs. |
plan |
AreaSubmissionPlan |
The submission plan from planAreaSubmission. |
options |
RunAreaOptions |
The run options: maxWorkers, signal, onAccepted, onProgress, retryFrom. |
Returns
Promise<AreaSchedule>
The frozen schedule of the run.
Throws
when the API accepted a job with an invalid geometry
reference, or retryFrom records one.
Throws
when retryFrom is a legacy schedule with an uncertain
capability probe.
TileJobStatus
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
TileJobStatus =
"pending"|"running"|"completed"|"failed"|"skipped"
The state of one tile's job: "pending", "running", "completed", "failed", or
"skipped" (not run, or no longer polled).
TilePosition
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
Where one tile sits in the tile grid.
Properties
| Property | Modifier | Type | Description |
|---|---|---|---|
col |
readonly |
number |
Column of the tile in the tile grid. |
row |
readonly |
number |
Row of the tile in the tile grid. |
tileId |
readonly |
string |
Identifier of the tile. |
TileProgress
Import from @infrared-city/infrared-sdk-ts, @infrared-city/infrared-sdk-ts/tiling.
A progress report for one tile, passed to a progress callback as a run proceeds.