관리 프로그램~
무엇을, 어떤 단계로, 어떤 목표로 기르는가를 담는 템플릿입니다. 구획에 붙이면 현재 단계·목표 환경·예상 종료일이 자동으로 따라옵니다.
프로그램은 설정 > 프로그램(/geo/programs)에서 관리합니다.
프로그램과 구획은 다릅니다
프로그램은 "토마토를 5단계로 이렇게 기른다"이고, 구획은 "3동 2구역에서 3월 2일부터 그 프로그램으로"입니다. 지도에 그리는 것은 구획이고, 프로그램은 그 구획이 참조하는 설정입니다. 프로그램 하나를 여러 구획이 함께 쓸 수 있습니다.
식생 전용이 아닙니다~
프로그램에는 종류가 있습니다 — 식생 · 가축 · 시설 · 기타. 같은 구조("무엇을, 어떤 단계로, 어떤 목표로")가 온실 작물에도, 축사 관리에도, 시설물 점검 주기에도 그대로 쓰입니다.
종류가 다르면 붙지 않습니다. 식생 구획에는 식생 프로그램만 붙습니다 — 가축 프로그램이 붙으면 화면에는 그럴듯한 단계와 목표가 뜨는데 그 해석이 통째로 엉뚱해지고, 아무 오류도 나지 않기 때문입니다.
프로그램 만들기~
목록 위의 선택 상자에서 고르고 추가를 누릅니다.
- 빈 프로그램 — 기본값입니다. 대부분은 자기 대상 하나를 만들 뿐입니다.
- 템플릿 — 예시로 시작하고 싶을 때 고릅니다. 템플릿은 DB에 미리 깔려 있지 않습니다 — 추가하기 전에는 아무것도 설치되지 않으며, 키우지도 않는 작물이 목록을 채우지 않습니다.
- 내 프로그램 복제 — 품종본을 만들 때 씁니다.
추가한 항목을 누르면 편집 드로어가 열립니다.
내장·외부 프로그램은 고칠 수 없습니다
고치려면 복제하세요. 원본을 고치게 두면 업그레이드나 외부 갱신이 그 수정을 덮어써 조용히 되돌아갑니다. 읽기 전용 프로그램에는 저장 버튼이 아예 나오지 않습니다.
편집 항목~
| 항목 | 설명 |
|---|---|
| 이름 | 목록에 보이는 이름 |
| 종류 | 식생 / 가축 / 시설 / 기타 (위 참조) |
| 적용 대상 | 이 프로그램이 다루는 것 — 작물명·수종·가축 등. 목록에서 고르거나 직접 입력 |
| 품종 | 비우면 그 대상의 기본. 채우면 품종 전용본이 됩니다 |
| 기준온도 | 적산온도(GDD)의 기준. 비우면 단계는 날짜로 넘어갑니다 (아래) |
| 목표 곡선 | 항목마다 Method를 걸면 단계 값 대신 곡선을 따릅니다 |
단계 표~
단계마다 한 줄입니다.
- 단계 이름 · 키 — 키는 코드가 쓰는 식별자입니다(
seedling등). 프로그램을 고쳐도 순서로 읽을 수 있게 함께 둡니다. - 일수 — 그 단계의 길이입니다(누적이 아닙니다). 마지막 단계만 비울 수 있고, 비우면 "끝까지"라는 뜻입니다.
- GDD — 적산온도로 넘길 때의 길이입니다. 비우면 그 단계는 날짜 기준입니다.
- [목표] — 누르면 그 단계의 목표값과 자원이 펼쳐집니다. 값이 있는 단계에는 ● 이 붙습니다.
목표는 기본으로 접혀 있습니다
7단계면 여섯 칸씩 42개가 한 화면에 펼쳐져 정작 단계 구조가 안 보이기 때문입니다.
단계별 목표~
주간 온도 · 야간 온도 · 습도 · CO₂ · DLI · VPD.
빈 칸은 저장되지 않습니다 — 0과 미지정을 구분해야 하기 때문입니다.
표시·조언용입니다
목표를 정한다고 그것만으로 무언가 켜지지는 않습니다 — 그러려면 환경제어 함수가 있고, 그 목표를 따르도록 설정돼 있어야 합니다. 목표의 역할은 "이 단계에는 이 정도가 맞다"를 사람·AI·(설정돼 있다면) 제어 함수가 같은 값으로 보게 하는 것입니다.
곡선을 걸면 그 항목은 이 화면에서 숫자가 안 나옵니다. 곡선을 따르는 항목에 단계 값을 대신 보이면 실제로 쓰이지 않는 숫자를 목표라고 말하는 것이 되기 때문입니다 — 화면에는 "곡선을 따름: (곡선 이름)"으로 표시됩니다. 그 곡선이 그날 실제로 얼마였고 실측이 얼마나 벗어났는지는 일지가 주간·야간으로 나눠 보여 줍니다.
구획별 목표 override~
프로그램의 목표값은 새 구획이 시작할 때 물려받는 값일 뿐입니다 — 그 뒤로는 곡선을 따르지 않는 목표라면 구획마다 프로그램과도, 같은 프로그램을 쓰는 다른 구획과도 무관하게 자기만의 값을 가질 수 있습니다.
- 고치는 곳은 프로그램이 아니라 구획입니다 — 여기(프로그램 편집)가 아니라
/plots페이지나 AoT Plot 위젯에서 고칩니다. - override는 그 구획 하나에만 적용됩니다. 고쳐도 프로그램은 바뀌지 않고, 같은 프로그램을 쓰는 다른 구획에도 영향이 없습니다.
- 칸을 비우면 override가 풀립니다 — 구획은 프로그램의 값으로 돌아갑니다.
- 곡선을 따르는 항목은 위와 같은 이유로 구획에서도 고칠 수 없습니다.
단계별 자원~
관개 · 시비 · 기타 각각에 Function을 하나씩 걸 수 있습니다.
프로그램이 함수를 켜지 않습니다
선언만 합니다. 구획 모달이 선언과 실제 상태를 나란히 보이고("관개 · 정지됨"), 켜는 것은 사람이 [적용]을 누를 때뿐입니다. 관수를 켜는 것은 물이 나오는 일이라 자동으로 하지 않습니다.
[적용]은 선언된 것만 건드립니다. 선언에 없는 함수를 끄지 않습니다 — 프로그램은 농장 전체의 함수 목록을 알지 못하므로, 끄기 시작하면 무관한 함수까지 멈춥니다.
함수를 나중에 지우면 그 자리에 "없는 함수"로 남습니다. 조용히 빼면 그 단계에서 자원이 통째로 사라진 것을 아무도 모르기 때문입니다.
적산온도(GDD)로 단계 넘기기~
날짜로만 넘기면 서늘한 봄과 더운 여름이 같은 날에 단계가 바뀝니다. 실제 생육은 쌓인 온도를 따르므로, 다음 셋이 모두 갖춰지면 GDD로 판정합니다.
- 프로그램에 기준온도가 있다
- 단계에 GDD 목표가 있다 (한 단계라도 비면 판정하지 않습니다 — 두 기준을 한 프로그램에 섞지 않습니다)
- 구획의 온도 이력이 80% 이상 있다
하나라도 없으면 날짜로 되돌아가고, 구획 모달이 이유를 함께 보입니다 — "날짜 기준 · 기준온도 미설정", "온도 이력 부족" 등.
계산식은 하루 평균입니다: GDD = max(0, (일 최고 + 일 최저) / 2 − 기준온도). 온도는 구획 안 센서를, 없으면 소속 구역의 센서를 씁니다.
환경 제어의 GDD와는 다른 값입니다
env_coordinator 함수에도 GDD가 있지만 그쪽은 제어 보상용이고 계산 방식과 전제가 다릅니다(그 함수가 있어야 합니다). 노지 구획에는 코디네이터가 없으므로 여기서는 온도 이력만으로 계산합니다. 두 값이 다른 것은 정상입니다.
단계 전환 확인·기록·되돌리기~
구획 모달 [개요] > 프로그램에서 합니다.
계산상 다음 단계에 들어섰으면 단계 전환 줄이 나타납니다. 날짜를 확인하거나 고친 뒤 [확인]을 누릅니다.
확인은 기준점을 옮깁니다
"정식기가 8월 4일에 시작됐다"를 확인하면 그 날부터 남은 단계를 다시 계산합니다. 프로그램은 표준이고 현실은 표준대로 가지 않으므로, 확인된 사실이 들어올 때마다 남은 계산이 거기에 맞춰 다시 정렬됩니다. 그래서 날짜를 고칠 수 있습니다 — 계산이 제안한 날과 실제로 관찰한 날이 다를 수 있고, 그 차이가 이후 계산 전체를 좌우합니다.
단계 기록에 확인된 전환이 쌓입니다. [마지막 되돌리기]로 직전 것을 무를 수 있습니다.
- 기록은 지워지지 않습니다 — 무른 줄은 "되돌림"으로 남습니다.
- 마지막 것만 무를 수 있습니다. 임의로 여러 개를 무르면 기준점이 어디인지 추적할 수 없습니다.
- 한 번도 확인하지 않은 구획은 지금까지와 똑같이 동작합니다 — 기존 구획에 소급해서 "승인하세요"가 뜨지 않습니다.
확인하기 전에는 단계가 넘어가지 않습니다
한 번이라도 확인한 구획은, 계산이 다음 단계를 가리켜도 확인할 때까지 지금 단계에 머뭅니다 — 목표 환경도 그대로입니다. 다음 단계 줄에 "확인 대기"가 뜹니다. (자동 전환을 켠 구획은 예외입니다. 확인 없이 넘어가도 된다는 결정이 이미 있기 때문입니다.)
단계 일정 고치기 — 연기·앞당김~
프로그램의 단계 기간은 표준이고, 구획은 그것을 참조만 합니다. 실제 일정은 구획 모달 [설정] > 단계 일정에서 고칩니다.
- 고치는 값은 그 단계가 며칠인가입니다. 프로그램과 같은 어휘라 날짜를 계산할 필요가 없습니다 — 시작일은 그 결과로 옆에 보입니다.
- 아직 오지 않은 단계의 기간을 고치고 [저장]을 누릅니다.
- 한 단계를 고치면 그 뒤 단계가 함께 밀립니다. 뒤를 그대로 두려면 다음 단계의 기간을 그만큼 줄이면 됩니다.
- 마지막 단계에는 기간이 없습니다(끝까지). 끝내는 날은 재배 종료가 정합니다.
- 프로그램과 같은 기간을 다시 적으면 그 단계는 표준으로 돌아갑니다 — 따로 되돌리기 버튼은 없습니다.
단계마다 지침 적기 · 단계 더하기·빼기~
같은 표에서 합니다. 프로그램은 그대로 둡니다 — 여기서 고친 것은 이 구획에만 적용됩니다.
- 단계마다 [편집] 을 누르면 그 단계의 기간 입력칸과 지침 입력칸이 함께 열립니다. 고치고 [저장] 을 누르면 둘 다 반영됩니다. 프로그램이 지침을 비워 두었어도 적을 수 있고, 비우면 프로그램의 지침이 다시 보입니다.
- 그 편집칸 아래 왼쪽의 [단계 빼기] 로 이 작기에 없는 단계를 뺍니다(육묘 없이 바로 정식하는 경우). 이미 지나간 단계는 뺄 수 없습니다 — 확인된 전환이 그 단계를 가리키고 있어서, 빼면 그때 무엇을 했는지가 사라집니다. 되돌리기로 전환을 먼저 무르세요.
- 표 아래 [단계 더하기] 를 누르면 이름·기간 칸이 열립니다. 맨 뒤에 붙고, 기간으로 자리를 맞춥니다.
- 지금 단계의 지침은 [현황] 탭 기간 축 바로 아래에 그대로 보입니다(누를 것 없이). 다른 단계의 지침은 이 표에서 봅니다.
이 일정을 프로그램으로 등록~
구획에서 기간을 맞추고 단계를 더하고 지침을 적고 나면 그 지식은 그 구획 안에만 있습니다. [설정] 탭 [프로그램] 카드 맨 아래의 [프로그램으로 등록] 으로 재사용할 수 있게 만듭니다.
- 담기는 것은 지금 실제로 따르는 단계 목록입니다 — 뺀 단계는 빠지고, 더한 단계는 들어가고, 기간은 표준이 아니라 경계 사이의 실제 날수입니다. 지침도 함께 갑니다.
- 목표값과 목표 항목은 원본 프로그램 것을 그대로 옮깁니다(구획이 손대지 않는 값입니다). 다만 등록 응답에는 단계마다 목표 옆에 이 구획이 실제로 잰 분포가 함께 옵니다 — 중앙값과 사분위(p25~p75)를, 센서마다 따로. 단계 일수는 실측으로 갱신되는데 목표값만 갱신할 길이 없었던 자리입니다.
- AI에게 등록을 시킬 때
adopt_targets를 켜면 애매하지 않은 항목만 실측 중앙값으로 바꿔 담습니다. 센서가 둘 이상이라 값이 갈리거나, 그 단계에 잰 것이 없거나, 곡선이 걸렸거나, 항목 정의의 범위를 벗어나면 원본을 지키고 이유를 말합니다 — 어느 센서를 쓸지는 사람이 정할 일이라 시스템이 고르지 않습니다. - 화면에서도 [등록]을 누르면 그 자리 아래에 이 비교가 펼쳐집니다 — 단계마다
목표 → 이 구획 중앙값, 센서가 갈리면 센서마다 한 줄씩. 보여 줄 뿐 아무것도 바꾸지 않으니, 고칠지는 그 숫자를 보고 정하시면 됩니다. - 이 구획은 옮겨지지 않습니다. 등록은 복사입니다 — 진행 중인 작기의 해석이 등록 한 번에 바뀌면 "그때 무엇을 목표로 길렀나" 의 답이 달라집니다. 새 프로그램을 이 구획에도 쓰려면 [설정]에서 고르면 됩니다.
- 이름이 겹치면 뒤에 번호가 붙습니다.
- 적어 둔 지침은 단계가 넘어가도 남습니다. 지나간 단계의 관찰이 전환 한 번에 사라지면 기록으로서 값이 없습니다.
- 단계 전환 줄에서 [연기]를 누르면 그 날짜로 미룹니다. 같은 칸의 [확인]은 "그 날 넘어갔다"(사실)이고, [연기]는 "그 날 넘어갈 것"(계획)입니다.
- 지나간 경계는 여기서 고치지 않습니다 — 그것은 [확인]·[마지막 되돌리기]가 다루는 일입니다.
- 날짜를 하나라도 직접 정하면 그 구획은 적산온도 대신 날짜로 판정합니다. 전부 지우면 적산온도로 돌아옵니다.
- 예상 종료일도 고친 일정을 따라갑니다.
자동 전환~
구획의 단계 자동 전환을 켜면 확인 없이 기록됩니다. 구획 모달 [설정] > 단계 일정에 있습니다.
- 구획마다 정합니다. 같은 프로그램을 쓰는 두 구획이 서로 달라도 됩니다 — 자동으로 넘겨도 되는지는 작물이 아니라 그 자리를 사람 눈 없이 믿을 수 있는가의 문제입니다.
- 기본은 꺼짐입니다. 켜져 있는 것이 기본이면 사람이 아무 결정도 하지 않았는데 단계가 스스로 넘어갑니다.
- 기록되는 날짜는 자료에서 되짚습니다 — "열어 본 날"이 아닙니다. 3주 뒤에 열어 봐도 같은 날짜가 남습니다.
- 되짚을 근거가 없으면 기록하지 않고 사람에게 묻는 상태로 둡니다.
- 자동으로 남은 줄은 이력에 "자동"으로 구분됩니다.
자원까지 자동이 되지는 않습니다
단계가 자동으로 넘어가도 관개·시비 함수는 켜지지 않습니다. 그것은 별개의 결정이라 [적용]을 눌러야 합니다.
구획 직접 관리하기~
/plots는 모든 구획을 나열합니다 — 지도·대지·구역·종류로 걸러볼 수 있고, 이미 끝난 구획을 포함할지 스위치로 정합니다. 구획은 여기서 만들지 않습니다 — 구획은 디자인 도구의 구획 모드에서 그려야만 생기고, 이 페이지는 이미 있는 구획을 관리하는 곳입니다.
하나를 누르면 이 페이지가 프로그램용으로 쓰는 것과 같은 종류의 드로어가 열립니다 — 일정(단계별 기간), 지침, 그리고 그 구획만의 목표까지 하나의 단계 트랙 안에서 함께 고칩니다. [저장]을 누르기 전까지는 아무것도 나가지 않습니다.
AoT Plot 위젯은 이 페이지로 가지 않고도 대시보드에서 구획 하나를 계속 보기 위해 똑같은 드로어를 엽니다. 지도 위젯의 구획 팝업은 같은 운영 사실을 보여주지만 아무것도 고치지 않습니다.
관련 문서~
- 디자인 도구 — 구획을 그리는 곳
- 지도 위젯 — 구획을 보고 운영하는 곳
- AoT Plot 위젯 — 대시보드에서 구획 하나를 계속 보는 위젯, 이 페이지와 같은 편집 드로어를 씁니다
- 시설 관리 — 도형 없이 구역 자체가 위치인 구획