User-Defined Tracking Angles allow the user to override the calculated tracker rotation angle with custom values supplied via time-series data. This mode bypasses the normal tracking algorithm (true tracking, backtracking, irradiance optimization, and wind stow) and uses the provided angles directly. Angles can be defined at the DC field level using time-series data, or—when a 3D scene is present—on a per-tracker basis using a Time Series Schedule.
When the DC field’s tracking method is set to Time Series, the tracker rotation angle for each timestep is read directly from the uploaded time-series data: α=αts. Each DC field can be assigned its own time-series data set; within a given DC field a single angle is applied uniformly at each timestep.The time-series data is uploaded on the Time Series Data page and assigned to the target DC field. Each entry specifies the tracker rotation angle in degrees for the corresponding timestep.In this mode, mechanical rotation limits (minimum and maximum tracking limit angles) are not enforced—the user-supplied angle is used as-is. If the user-supplied angle is exactly 0°, a small offset of 0.001° is applied so that the module surface has a definable azimuth (at exactly 0° the surface is horizontal and its azimuth is undefined). For any timestep where time-series data is unavailable (e.g., the series is shorter than the weather file or not assigned), the algorithm falls back to a standard tracking algorithm: true tracking if the DC field uses CdTe modules, standard backtracking for any other module type.
When a 3D scene is present, the Time Series Schedule option in the Tracker Rotation Model dropdown enables per-tracker user-defined angles. Rather than applying a single angle to the entire DC field, each individual tracker i receives its own rotation angle at each timestep: αi=αts,i. The time-series data is uploaded on the 3D Scene Overview page.The 3D engine receives per-tracker angles as fixed-point integers (degrees × 100, so 20.45° is stored as 2045). The angles are used directly by the 3D shading engine with no zero-angle offset and no mechanical limit clamping.
⌘I
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"PlantPredict","colors":{"primary":"#086EC1","light":"#086EC1","dark":"#086EC1"},"logo":{"light":"https://mintcdn.com/terabaseenergy/iiAvm3u0yaPPvDgU/logo/Terabase_PlantPredict_Primary_Logo_Full_Color.svg?fit=max\u0026auto=format\u0026n=iiAvm3u0yaPPvDgU\u0026q=85\u0026s=d951c2fe4058ac3998997d5ed958bfe9","dark":"https://mintcdn.com/terabaseenergy/iiAvm3u0yaPPvDgU/logo/Terabase_PlantPredict_Primary_Logo_White.svg?fit=max\u0026auto=format\u0026n=iiAvm3u0yaPPvDgU\u0026q=85\u0026s=00d16ee188089d2e0fd9f9985ac4b900","href":"https://plantpredict.com/"},"favicon":"https://mintcdn.com/terabaseenergy/eQgx_CYJ74LVr_OK/favicon.ico?fit=max\u0026auto=format\u0026n=eQgx_CYJ74LVr_OK\u0026q=85\u0026s=187e381231017c22c54a0ce44fc17094","appearance":{"default":"system"},"navbar":{"links":[{"href":"mailto:support@plantpredict.com","label":"Support"}]},"footer":{"socials":{"github":"https://github.com/plantpredict","linkedin":"https://www.linkedin.com/showcase/plantpredict"}},"seo":{"metatags":{"canonical":"https://docs.plantpredict.com"}},"styling":{"latex":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"terabaseenergy","hasAudioNarration":false,"actualSubdomain":"terabaseenergy","customDomains":["docs.plantpredict.com"],"gitSource":{"type":"github","owner":"plantpredict","repo":"plantpredict-product-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad7a0ce2644e7bc6aafcbc6","collectionId":"d491a5bd-c421-4d98-82a8-d566025eb287","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad7a0ce2644e7bc6aafcbc6"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ad7a1623b90767d9497b137","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"Release Notes","count":416},{"language":"default","tag":"PlantPredict","count":248},{"language":"default","tag":"API \u0026 SDK","count":122},{"language":"default","tag":"API Reference","count":115},{"language":"default","tag":"Models \u0026 Algorithms","count":66},{"language":"default","tag":"User Guide","count":62},{"language":"default","tag":"Version 11","count":40},{"language":"default","tag":"User Interface","count":37},{"language":"default","tag":"1. Irradiance Calculation","count":36},{"language":"default","tag":"Predictions","count":36}]},"assistantConfig":{"enableStarterQuestions":true,"deflection":{"enabled":true,"email":"support@plantpredict.com"}},"hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"starterQuestions":[{"_id":"6a7f91873c58081693a6b2bf","deploymentId":"68def69020f53d6d18a22d89","questionText":"What is nodal data?","status":"active","generatedBy":"manual","createdAt":"2026-08-14T22:07:03.879Z","updatedAt":"2026-08-14T22:07:03.879Z","__v":0},{"_id":"6a7f91823c58081693a6b25b","deploymentId":"68def69020f53d6d18a22d89","questionText":"How do I create a 3D shade scene?","status":"active","generatedBy":"manual","createdAt":"2026-08-14T22:06:58.200Z","updatedAt":"2026-08-14T22:06:58.200Z","__v":0},{"_id":"6a7f917b3c58081693a6b1f9","deploymentId":"68def69020f53d6d18a22d89","questionText":"How can I run a sub-hourly prediction?","status":"active","generatedBy":"manual","createdAt":"2026-08-14T22:06:51.302Z","updatedAt":"2026-08-14T22:06:51.302Z","__v":0}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"styles/custom.css","content":".katex-display,.katex-display>.katex{overflow-y:hidden!important}.katex-display::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}.katex-display{-ms-overflow-style:none!important;scrollbar-width:none!important}"},{"filePath":"style.css","content":".card{border:2px solid #1b3359!important;box-shadow:0 4px 12px rgba(27,51,89,.15)!important;transition:box-shadow .2s ease,transform .2s ease!important}.card:hover{box-shadow:0 8px 24px rgba(27,51,89,.25)!important;transform:translateY(-2px)!important}@media (min-width:1024px){#sidebar{display:flex!important}}.pricing-desc{color:oklch(37.3% .034 259.733)}.dark .landing-desc,.dark .pricing-desc{color:oklch(87.2% .01 258.338)!important}.pricing-page-marker{display:none}#content:has(>.pricing-page-marker){max-width:none!important}#content-area:has(.pricing-page-marker){max-width:calc(36rem + 300px)!important}@media (min-width:1536px){#content-area:has(.pricing-page-marker){max-width:calc(42rem + 150px)!important}}.landing-desc{color:oklch(37.3% .034 259.733);opacity:.8}"}],"page":{"pagePath":"models/tracking/user_defined_tracking_angles","slug":"/models/tracking/user_defined_tracking_angles","pageMetadata":{"title":"User-Defined Tracking Angles","description":null,"href":"/models/tracking/user_defined_tracking_angles"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,annotation:`annotation`,hr:`hr`,math:`math`,mi:`mi`,mo:`mo`,mrow:`mrow`,msub:`msub`,p:`p`,semantics:`semantics`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`summary`,children:`Summary`}),`\n`,_jsx(_components.p,{children:`User-Defined Tracking Angles allow the user to override the calculated tracker rotation angle with custom values supplied via time-series data. This mode bypasses the normal tracking algorithm (true tracking, backtracking, irradiance optimization, and wind stow) and uses the provided angles directly. Angles can be defined at the DC field level using time-series data, or—when a 3D scene is present—on a per-tracker basis using a Time Series Schedule.`}),`\n`,_jsx(Heading,{level:`2`,id:`inputs`,children:`Inputs`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Name`}),_jsx(_components.th,{children:`Symbol`}),_jsx(_components.th,{children:`Units`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Tracking Angle Time Series`})}),_jsx(_components.td,{children:_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,children:_jsxs(_components.semantics,{children:[_jsx(_components.mrow,{children:_jsxs(_components.msub,{children:[_jsx(_components.mi,{children:`α`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`t`}),_jsx(_components.mi,{children:`s`})]})]})}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:`\\\\alpha_{ts}`})]})})}),_jsx(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.5806em`,verticalAlign:`-0.15em`}}),_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0037em`},children:`α`}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.2806em`},children:_jsxs(_components.span,{style:{top:`-2.55em`,marginLeft:`-0.0037em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,children:`t`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`s`})]})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.15em`},children:_jsx(_components.span,{})})})]})})]})]})})]})}),_jsx(_components.td,{children:`degrees`}),_jsx(_components.td,{children:`User-supplied rotation angle for each timestep`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Per-Tracker Angle Time Series`})}),_jsx(_components.td,{children:_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,children:_jsxs(_components.semantics,{children:[_jsx(_components.mrow,{children:_jsxs(_components.msub,{children:[_jsx(_components.mi,{children:`α`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`t`}),_jsx(_components.mi,{children:`s`}),_jsx(_components.mo,{separator:`true`,children:`,`}),_jsx(_components.mi,{children:`i`})]})]})}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:`\\\\alpha_{ts,i}`})]})})}),_jsx(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.7167em`,verticalAlign:`-0.2861em`}}),_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0037em`},children:`α`}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.3117em`},children:_jsxs(_components.span,{style:{top:`-2.55em`,marginLeft:`-0.0037em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,children:`t`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`s`}),_jsx(_components.span,{className:`mpunct mtight`,children:`,`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`i`})]})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.2861em`},children:_jsx(_components.span,{})})})]})})]})]})})]})}),_jsx(_components.td,{children:`degrees`}),_jsxs(_components.td,{children:[`User-supplied rotation angle for tracker `,_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,children:_jsxs(_components.semantics,{children:[_jsx(_components.mrow,{children:_jsx(_components.mi,{children:`i`})}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:`i`})]})})}),_jsx(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.6595em`}}),_jsx(_components.span,{className:`mord mathnormal`,children:`i`})]})})]}),` at each timestep (3D scene only)`]})]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`outputs`,children:`Outputs`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Name`}),_jsx(_components.th,{children:`Symbol`}),_jsx(_components.th,{children:`Units`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Tracker Rotation Angle`})}),_jsx(_components.td,{children:_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,children:_jsxs(_components.semantics,{children:[_jsx(_components.mrow,{children:_jsx(_components.mi,{children:`α`})}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:`\\\\alpha`})]})})}),_jsx(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.4306em`}}),_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0037em`},children:`α`})]})})]})}),_jsx(_components.td,{children:`degrees`}),_jsx(_components.td,{children:`Applied rotation angle about the tracker axis (DC field level)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Per-Tracker Rotation Angle`})}),_jsx(_components.td,{children:_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,children:_jsxs(_components.semantics,{children:[_jsx(_components.mrow,{children:_jsxs(_components.msub,{children:[_jsx(_components.mi,{children:`α`}),_jsx(_components.mi,{children:`i`})]})}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:`\\\\alpha_i`})]})})}),_jsx(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.5806em`,verticalAlign:`-0.15em`}}),_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0037em`},children:`α`}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.3117em`},children:_jsxs(_components.span,{style:{top:`-2.55em`,marginLeft:`-0.0037em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsx(_components.span,{className:`mord mathnormal mtight`,children:`i`})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.15em`},children:_jsx(_components.span,{})})})]})})]})]})})]})}),_jsx(_components.td,{children:`degrees`}),_jsxs(_components.td,{children:[`Applied rotation angle for tracker `,_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,children:_jsxs(_components.semantics,{children:[_jsx(_components.mrow,{children:_jsx(_components.mi,{children:`i`})}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:`i`})]})})}),_jsx(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.6595em`}}),_jsx(_components.span,{className:`mord mathnormal`,children:`i`})]})})]}),` (3D scene only)`]})]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`detailed-description`,children:`Detailed Description`}),`\n`,_jsx(Heading,{level:`3`,id:`dc-field-level`,children:`DC Field Level`}),`\n`,_jsxs(_components.p,{children:[`When the DC field’s tracking method is set to `,_jsx(_components.strong,{children:`Time Series`}),`, the tracker rotation angle for each timestep is read directly from the uploaded time-series data: `,_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,children:_jsxs(_components.semantics,{children:[_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`α`}),_jsx(_components.mo,{children:`=`}),_jsxs(_components.msub,{children:[_jsx(_components.mi,{children:`α`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`t`}),_jsx(_components.mi,{children:`s`})]})]})]}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:`\\\\alpha = \\\\alpha_{ts}`})]})})}),_jsxs(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:[_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.4306em`}}),_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0037em`},children:`α`}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2778em`}}),_jsx(_components.span,{className:`mrel`,children:`=`}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2778em`}})]}),_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.5806em`,verticalAlign:`-0.15em`}}),_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0037em`},children:`α`}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.2806em`},children:_jsxs(_components.span,{style:{top:`-2.55em`,marginLeft:`-0.0037em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,children:`t`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`s`})]})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.15em`},children:_jsx(_components.span,{})})})]})})]})]})]})]}),`. Each DC field can be assigned its own time-series data set; within a given DC field a single angle is applied uniformly at each timestep.`]}),`\n`,_jsxs(_components.p,{children:[`The time-series data is uploaded on the `,_jsx(_components.a,{href:`/user-guide/ui/time-series-data`,children:`Time Series Data`}),` page and assigned to the target DC field. Each entry specifies the tracker rotation angle in degrees for the corresponding timestep.`]}),`\n`,_jsxs(_components.p,{children:[`In this mode, mechanical rotation limits (minimum and maximum tracking limit angles) are `,_jsx(_components.strong,{children:`not`}),` enforced—the user-supplied angle is used as-is. If the user-supplied angle is exactly 0°, a small offset of 0.001° is applied so that the module surface has a definable azimuth (at exactly 0° the surface is horizontal and its azimuth is undefined). For any timestep where time-series data is unavailable (e.g., the series is shorter than the weather file or not assigned), the algorithm falls back to a standard tracking algorithm: true tracking if the DC field uses CdTe modules, standard backtracking for any other module type.`]}),`\n`,_jsx(Heading,{level:`3`,id:`3d-scene-per-tracker`,children:`3D Scene (Per-Tracker)`}),`\n`,_jsxs(_components.p,{children:[`When a 3D scene is present, the `,_jsx(_components.strong,{children:`Time Series Schedule`}),` option in the Tracker Rotation Model dropdown enables per-tracker user-defined angles. Rather than applying a single angle to the entire DC field, each individual tracker `,_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,children:_jsxs(_components.semantics,{children:[_jsx(_components.mrow,{children:_jsx(_components.mi,{children:`i`})}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:`i`})]})})}),_jsx(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.6595em`}}),_jsx(_components.span,{className:`mord mathnormal`,children:`i`})]})})]}),` receives its own rotation angle at each timestep: `,_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,children:_jsxs(_components.semantics,{children:[_jsxs(_components.mrow,{children:[_jsxs(_components.msub,{children:[_jsx(_components.mi,{children:`α`}),_jsx(_components.mi,{children:`i`})]}),_jsx(_components.mo,{children:`=`}),_jsxs(_components.msub,{children:[_jsx(_components.mi,{children:`α`}),_jsxs(_components.mrow,{children:[_jsx(_components.mi,{children:`t`}),_jsx(_components.mi,{children:`s`}),_jsx(_components.mo,{separator:`true`,children:`,`}),_jsx(_components.mi,{children:`i`})]})]})]}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:`\\\\alpha_i = \\\\alpha_{ts,i}`})]})})}),_jsxs(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:[_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.5806em`,verticalAlign:`-0.15em`}}),_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0037em`},children:`α`}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.3117em`},children:_jsxs(_components.span,{style:{top:`-2.55em`,marginLeft:`-0.0037em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsx(_components.span,{className:`mord mathnormal mtight`,children:`i`})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.15em`},children:_jsx(_components.span,{})})})]})})]}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2778em`}}),_jsx(_components.span,{className:`mrel`,children:`=`}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.2778em`}})]}),_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.7167em`,verticalAlign:`-0.2861em`}}),_jsxs(_components.span,{className:`mord`,children:[_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0037em`},children:`α`}),_jsx(_components.span,{className:`msupsub`,children:_jsxs(_components.span,{className:`vlist-t vlist-t2`,children:[_jsxs(_components.span,{className:`vlist-r`,children:[_jsx(_components.span,{className:`vlist`,style:{height:`0.3117em`},children:_jsxs(_components.span,{style:{top:`-2.55em`,marginLeft:`-0.0037em`,marginRight:`0.05em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`2.7em`}}),_jsx(_components.span,{className:`sizing reset-size6 size3 mtight`,children:_jsxs(_components.span,{className:`mord mtight`,children:[_jsx(_components.span,{className:`mord mathnormal mtight`,children:`t`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`s`}),_jsx(_components.span,{className:`mpunct mtight`,children:`,`}),_jsx(_components.span,{className:`mord mathnormal mtight`,children:`i`})]})})]})}),_jsx(_components.span,{className:`vlist-s`,children:``})]}),_jsx(_components.span,{className:`vlist-r`,children:_jsx(_components.span,{className:`vlist`,style:{height:`0.2861em`},children:_jsx(_components.span,{})})})]})})]})]})]})]}),`. The time-series data is uploaded on the `,_jsx(_components.a,{href:`/user-guide/ui/3d-scene-overview`,children:`3D Scene Overview`}),` page.`]}),`\n`,_jsx(_components.p,{children:`The 3D engine receives per-tracker angles as fixed-point integers (degrees × 100, so 20.45° is stored as 2045). The angles are used directly by the 3D shading engine with no zero-angle offset and no mechanical limit clamping.`}),`\n`,_jsx(_components.hr,{})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"User-Defined Tracking Angles","description":null,"href":"/models/tracking/user_defined_tracking_angles"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Summary","slug":"summary","depth":2,"children":[]},{"title":"Inputs","slug":"inputs","depth":2,"children":[]},{"title":"Outputs","slug":"outputs","depth":2,"children":[]},{"title":"Detailed Description","slug":"detailed-description","depth":2,"children":[{"title":"DC Field Level","slug":"dc-field-level","depth":3,"children":[]},{"title":"3D Scene (Per-Tracker)","slug":"3d-scene-per-tracker","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"terabaseenergy","siteName":"PlantPredict","title":"User-Defined Tracking Angles - PlantPredict","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-23T08:20:04.974Z","originalFileLocation":"models/tracking/user_defined_tracking_angles.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"PlantPredict\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/terabaseenergy/ilK7irh8meTrRs2B/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/terabaseenergy/ilK7irh8meTrRs2B/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/terabaseenergy/ilK7irh8meTrRs2B/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/terabaseenergy/ilK7irh8meTrRs2B/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/terabaseenergy/ilK7irh8meTrRs2B/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/terabaseenergy/ilK7irh8meTrRs2B/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/terabaseenergy/ilK7irh8meTrRs2B/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/terabaseenergy/ilK7irh8meTrRs2B/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/terabaseenergy/ilK7irh8meTrRs2B/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"User-Defined Tracking Angles - PlantPredict\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"PlantPredict\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.plantpredict.com/models/tracking/user_defined_tracking_angles\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://terabaseenergy.mintlify.app/_mintlify/api/og/v2?division=Tracker+%26+Array+Orientation\u0026amp;title=User-Defined+Tracking+Angles\u0026amp;theme=1f68e286db8da289ee4a7938\u0026amp;signature=1e4f8f6143f31d9987f4c07a483fe6cf9f9c29aa339da03a5458b6046533ab41\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"User-Defined Tracking Angles - PlantPredict\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://terabaseenergy.mintlify.app/_mintlify/api/og/v2?division=Tracker+%26+Array+Orientation\u0026amp;title=User-Defined+Tracking+Angles\u0026amp;theme=1f68e286db8da289ee4a7938\u0026amp;signature=1e4f8f6143f31d9987f4c07a483fe6cf9f9c29aa339da03a5458b6046533ab41\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/terabaseenergy/ilK7irh8meTrRs2B/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"PlantPredict\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#086EC1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.plantpredict.com/models/tracking/user_defined_tracking_angles\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/models/tracking/user_defined_tracking_angles.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.plantpredict.com/#organization\",\"name\":\"PlantPredict\",\"url\":\"https://docs.plantpredict.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/terabaseenergy/iiAvm3u0yaPPvDgU/logo/Terabase_PlantPredict_Primary_Logo_Full_Color.svg?fit=max\u0026auto=format\u0026n=iiAvm3u0yaPPvDgU\u0026q=85\u0026s=d951c2fe4058ac3998997d5ed958bfe9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.plantpredict.com#website\",\"name\":\"PlantPredict\",\"url\":\"https://docs.plantpredict.com\",\"publisher\":{\"@id\":\"https://docs.plantpredict.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.plantpredict.com/models/tracking/user_defined_tracking_angles#webpage\",\"url\":\"https://docs.plantpredict.com/models/tracking/user_defined_tracking_angles\",\"name\":\"User-Defined Tracking Angles\",\"dateModified\":\"2026-09-23T08:20:04.974Z\",\"isPartOf\":{\"@id\":\"https://docs.plantpredict.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.plantpredict.com/models/tracking/user_defined_tracking_angles#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.plantpredict.com/models/tracking/user_defined_tracking_angles#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"1. Irradiance Calculation\",\"item\":\"https://docs.plantpredict.com/models/solar-geometry/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tracker \u0026 Array Orientation\",\"item\":\"https://docs.plantpredict.com/models/tracking/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"User-Defined Tracking Angles\",\"item\":\"https://docs.plantpredict.com/models/tracking/user_defined_tracking_angles\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.plantpredict.com/models/tracking/user_defined_tracking_angles#article\",\"headline\":\"User-Defined Tracking Angles\",\"name\":\"User-Defined Tracking Angles\",\"url\":\"https://docs.plantpredict.com/models/tracking/user_defined_tracking_angles\",\"mainEntityOfPage\":{\"@id\":\"https://docs.plantpredict.com/models/tracking/user_defined_tracking_angles#webpage\"},\"dateModified\":\"2026-09-23T08:20:04.974Z\",\"publisher\":{\"@id\":\"https://docs.plantpredict.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.plantpredict.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"PlantPredict\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"PlantPredict","nav":{"global":null,"tabs":[{"tab":"Home","icon":"house"},{"tab":"PlantPredict","icon":"sun","menu":[{"item":"User Guide","pages":[{"title":"User Guide","href":"/user-guide/intro/introduction"}]},{"item":"Models \u0026 Algorithms","groups":[{"group":"General","icon":"book-open","pages":[{"title":" ","sidebarTitle":"Introduction","href":"/models/general/intro"},{"title":"Prediction Model Flow","href":"/models/general/prediction_flow"},{"title":"Variable Input-Output Table","href":"/models/general/variable_input_output_table"},{"title":"Glossary","href":"/models/general/glossary"}]},{"group":"1. Irradiance Calculation","icon":"cloud-sun","pages":[{"group":"Sun Position \u0026 Extraterrestrial Irradiance","pages":[{"title":"Sun Position \u0026 Extra-terrestrial Irradiance Overview","href":"/models/solar-geometry/overview"},{"title":"Extraterrestrial Irradiance","href":"/models/solar-geometry/extraterrestrial_irradiance"},{"title":"Solar Position Algorithm","href":"/models/solar-geometry/solar_position_algorithm"},{"title":"Sunrise and Sunset Determination","href":"/models/solar-geometry/sunrise_sunset"},{"title":"Air Mass Model","href":"/models/solar-geometry/air_mass"}]},{"group":"Horizontal Irradiance Processing","pages":[{"title":"Horizontal Irradiance Processing Overview","href":"/models/horizontal-irradiance/overview"},{"title":"Horizontal Irradiance Components Pre-Processing","href":"/models/horizontal-irradiance/horizontal_irradiance_components"},{"title":"GHI Diffuse-Direct Decomposition","href":"/models/horizontal-irradiance/ghi_diffuse_direct_decomposition"},{"title":"POAI Diffuse-Direct Decomposition","href":"/models/horizontal-irradiance/poai_diffuse_direct_decomposition"},{"title":"Bird Clear Sky Model","href":"/models/horizontal-irradiance/bird_clear_sky_model"}]},{"group":"Tracker \u0026 Array Orientation","pages":[{"title":"Tracker \u0026 Array Orientation Overview","href":"/models/tracking/overview"},{"title":"Fixed-Tilt Arrays","href":"/models/tracking/fixed_tilt_arrays"},{"title":"True Tracking","href":"/models/tracking/true_tracking"},{"title":"Standard Backtracking","href":"/models/tracking/backtracking/standard_backtracking"},{"title":"Terrain-Aware Backtracking","description":null,"href":"/models/tracking/backtracking/terrain_aware_backtracking"},{"title":"User-Defined Tracking Angles","href":"/models/tracking/user_defined_tracking_angles"},{"title":"Irradiance Optimization","description":null,"href":"/models/tracking/irradiance_optimization"},{"title":"Wind Stow","href":"/models/tracking/wind_stow"},{"title":"Incidence Angle Calculation","href":"/models/tracking/incidence_angle"}]},{"group":"Transposition Models","pages":[{"title":"Transposition Models Overview","href":"/models/transposition/overview"},{"title":"Hay-Davies Model","href":"/models/transposition/hay_davies"},{"title":"Perez Model","href":"/models/transposition/perez"},{"title":"3D Transposition","href":"/models/transposition/3d_transposition"}]},{"group":"Shading Models","pages":[{"title":"Shading Models Overview","href":"/models/shading/overview"},{"title":"Horizon Shading","href":"/models/shading/horizon_shading"},{"title":"Sky Diffuse Shading","href":"/models/shading/sky_diffuse_shading"},{"title":"Ground-Reflected Shading","href":"/models/shading/ground_reflected_shading"},{"group":"Direct Beam Shading","pages":[{"title":"Row-to-Row Beam Shading - DC Field Level","href":"/models/shading/row_to_row_beam_shading"},{"title":"3D Shading - DC Field Level (Deprecated)","href":"/models/shading/3d_shading_dc_field"},{"title":"3D Shading - Site Level (Version 12+)","href":"/models/shading/3d_shading_site_level"}]},{"title":"Electrical Effect of Shading","href":"/models/shading/electrical_shading_effect"}]},{"group":"Plane-of-Array Irradiance","pages":[{"title":"Plane-of-Array Irradiance Overview","href":"/models/poa-irradiance/overview"},{"title":"Soiling","href":"/models/poa-irradiance/soiling"},{"title":"Incidence Angle Modifier (IAM)","href":"/models/poa-irradiance/iam"},{"title":"Spectral Correction","href":"/models/poa-irradiance/spectral_correction"},{"title":"Rear Irradiance","href":"/models/poa-irradiance/rear_irradiance"}]}]},{"group":"2. Photovoltaic Conversion","icon":"solar-panel","pages":[{"title":"Photovoltaic Conversion Overview","href":"/models/dc-performance/overview"},{"group":"Cell Temperature Models","pages":[{"title":"Heat Balance Model","href":"/models/dc-performance/temperature_heat_balance"},{"title":"Sandia Model","href":"/models/dc-performance/temperature_sandia"},{"title":"NOCT-SAM Model","href":"/models/dc-performance/temperature_noct_sam"},{"title":"Measured Surface Temperature","href":"/models/dc-performance/measured_surface_temperature"}]},{"title":"DC System Losses","href":"/models/dc-performance/dc_system_losses"},{"title":"DC Wiring Resistance","href":"/models/dc-performance/dc_wiring_resistance"},{"group":"Single-Diode Models","pages":[{"title":"Parameter Translation","href":"/models/dc-performance/parameter_translation"},{"title":"5-Parameter Model","href":"/models/dc-performance/5_parameter_model"},{"title":"7-Parameter Model","href":"/models/dc-performance/7_parameter_model"}]}]},{"group":"3. DC Aggregation and DC–AC Conversion","icon":"wave-sine","pages":[{"title":"DC Aggregation and DC-AC Conversion Overview","href":"/models/inverter-models/overview"},{"title":"DC Field Aggregation","href":"/models/inverter-models/dc_field_aggregation"},{"title":"Degradation Losses (DC Applied)","href":"/models/inverter-models/degradation_dc_applied"},{"title":"Inverter Temperature Derating","href":"/models/inverter-models/inverter_temperature_derating"},{"title":"Inverter Operating Regions","href":"/models/inverter-models/inverter_operating_regions"},{"title":"Inverter Efficiency Models","href":"/models/inverter-models/inverter_efficiency"}]},{"group":"4. AC Collection and Interconnection","icon":"bolt","pages":[{"title":"AC Losses Overview","href":"/models/ac-losses/overview"},{"title":"Degradation Losses (AC Applied)","href":"/models/ac-losses/degradation_ac_applied"},{"title":"Transformer Loss Model","href":"/models/ac-losses/transformer_loss_model"},{"title":"Array-Level Aggregation \u0026 AC Losses","href":"/models/ac-losses/array_level_losses"},{"title":"Plant-Level Aggregation \u0026 AC Losses","href":"/models/ac-losses/plant_level_losses"}]},{"group":"5. Energy Storage","icon":"battery-full","pages":[{"title":"Energy Storage Overview","href":"/models/energy-storage/overview"},{"title":"Charge \u0026 Discharge Limits","href":"/models/energy-storage/charge_discharge_limits"},{"title":"Dispatch Algorithms","href":"/models/energy-storage/dispatch_algorithms"},{"title":"Battery Model","href":"/models/energy-storage/battery_model"},{"title":"Power Flow to Grid","href":"/models/energy-storage/power_flow"}]}]},{"item":"API \u0026 SDK","pages":[{"title":"API \u0026 SDK","href":"/api-docs/intro"}]}]},{"tab":"Design Pro","icon":"compass-drafting","menu":[{"item":"User Guide","href":"https://terabase.atlassian.net/servicedesk/customer/portal/3/topic/058fa7a7-e6a7-4b23-8c73-84ae563d6cd7/article/1295253542"}]},{"tab":"Terrain Pro","icon":"mountain","menu":[{"item":"User Guide","pages":[{"title":"User Guide","href":"/user-guide/terrain-pro/terrain-pro-user-guide"}]}],"pages":[{"title":"Terrain Pro","href":"/user-guide/terrain-pro/terrain-pro-user-guide"}]},{"tab":"Voltage Pro","icon":"bolt","menu":[{"item":"User Guide","pages":[{"title":"User Guide","href":"/user-guide/voltage-pro/voltage-pro-user-guide"}]}],"pages":[{"title":"Voltage Pro","href":"/user-guide/voltage-pro/voltage-pro-user-guide"}]},{"tab":"Extensions","icon":"puzzle-piece","menu":[{"item":"PVRADAR Soiling","href":"https://pvradar.com/partners/terabase"},{"item":"PowerUQ","href":"https://www.poweruq.com/plantpredict-integration"}]},{"tab":"Release Notes","icon":"notebook","pages":[{"title":"Release Notes","href":"/release-notes/Current-Version"}]}]},"title":"User-Defined Tracking Angles - PlantPredict","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":[],"chunks":[]}