콘텐츠로 이동

관리 프로그램~

무엇을, 어떤 단계로, 어떤 목표로 기르는가를 담는 템플릿입니다. 구획에 붙이면 현재 단계·목표 환경·예상 종료일이 자동으로 따라옵니다.

프로그램은 설정 > 프로그램(/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로 판정합니다.

  1. 프로그램에 기준온도가 있다
  2. 단계에 GDD 목표가 있다 (한 단계라도 비면 판정하지 않습니다 — 두 기준을 한 프로그램에 섞지 않습니다)
  3. 구획의 온도 이력이 80% 이상 있다

하나라도 없으면 날짜로 되돌아가고, 구획 모달이 이유를 함께 보입니다 — "날짜 기준 · 기준온도 미설정", "온도 이력 부족" 등.

계산식은 하루 평균입니다: GDD = max(0, (일 최고 + 일 최저) / 2 − 기준온도). 온도는 구획 안 센서를, 없으면 소속 구역의 센서를 씁니다.

환경 제어의 GDD와는 다른 값입니다

env_coordinator 함수에도 GDD가 있지만 그쪽은 제어 보상용이고 계산 방식과 전제가 다릅니다(그 함수가 있어야 합니다). 노지 구획에는 코디네이터가 없으므로 여기서는 온도 이력만으로 계산합니다. 두 값이 다른 것은 정상입니다.

단계 전환 확인·기록·되돌리기~

구획 모달 [개요] > 프로그램에서 합니다.

계산상 다음 단계에 들어섰으면 단계 전환 줄이 나타납니다. 날짜를 확인하거나 고친 뒤 [확인]을 누릅니다.

확인은 기준점을 옮깁니다

"정식기가 8월 4일에 시작됐다"를 확인하면 그 날부터 남은 단계를 다시 계산합니다. 프로그램은 표준이고 현실은 표준대로 가지 않으므로, 확인된 사실이 들어올 때마다 남은 계산이 거기에 맞춰 다시 정렬됩니다. 그래서 날짜를 고칠 수 있습니다 — 계산이 제안한 날과 실제로 관찰한 날이 다를 수 있고, 그 차이가 이후 계산 전체를 좌우합니다.

단계 기록에 확인된 전환이 쌓입니다. [마지막 되돌리기]로 직전 것을 무를 수 있습니다.

  • 기록은 지워지지 않습니다 — 무른 줄은 "되돌림"으로 남습니다.
  • 마지막 것만 무를 수 있습니다. 임의로 여러 개를 무르면 기준점이 어디인지 추적할 수 없습니다.
  • 한 번도 확인하지 않은 구획은 지금까지와 똑같이 동작합니다 — 기존 구획에 소급해서 "승인하세요"가 뜨지 않습니다.

확인하기 전에는 단계가 넘어가지 않습니다

한 번이라도 확인한 구획은, 계산이 다음 단계를 가리켜도 확인할 때까지 지금 단계에 머뭅니다 — 목표 환경도 그대로입니다. 다음 단계 줄에 "확인 대기"가 뜹니다. (자동 전환을 켠 구획은 예외입니다. 확인 없이 넘어가도 된다는 결정이 이미 있기 때문입니다.)

단계 일정 고치기 — 연기·앞당김~

프로그램의 단계 기간은 표준이고, 구획은 그것을 참조만 합니다. 실제 일정은 구획 모달 [설정] > 단계 일정에서 고칩니다.

  • 고치는 값은 그 단계가 며칠인가입니다. 프로그램과 같은 어휘라 날짜를 계산할 필요가 없습니다 — 시작일은 그 결과로 옆에 보입니다.
  • 아직 오지 않은 단계의 기간을 고치고 [저장]을 누릅니다.
  • 한 단계를 고치면 그 뒤 단계가 함께 밀립니다. 뒤를 그대로 두려면 다음 단계의 기간을 그만큼 줄이면 됩니다.
  • 마지막 단계에는 기간이 없습니다(끝까지). 끝내는 날은 재배 종료가 정합니다.
  • 프로그램과 같은 기간을 다시 적으면 그 단계는 표준으로 돌아갑니다 — 따로 되돌리기 버튼은 없습니다.

단계마다 지침 적기 · 단계 더하기·빼기~

같은 표에서 합니다. 프로그램은 그대로 둡니다 — 여기서 고친 것은 이 구획에만 적용됩니다.

  • 단계마다 [편집] 을 누르면 그 단계의 기간 입력칸과 지침 입력칸이 함께 열립니다. 고치고 [저장] 을 누르면 둘 다 반영됩니다. 프로그램이 지침을 비워 두었어도 적을 수 있고, 비우면 프로그램의 지침이 다시 보입니다.
  • 그 편집칸 아래 왼쪽의 [단계 빼기] 로 이 작기에 없는 단계를 뺍니다(육묘 없이 바로 정식하는 경우). 이미 지나간 단계는 뺄 수 없습니다 — 확인된 전환이 그 단계를 가리키고 있어서, 빼면 그때 무엇을 했는지가 사라집니다. 되돌리기로 전환을 먼저 무르세요.
  • 표 아래 [단계 더하기] 를 누르면 이름·기간 칸이 열립니다. 맨 뒤에 붙고, 기간으로 자리를 맞춥니다.
  • 지금 단계의 지침은 [현황] 탭 기간 축 바로 아래에 그대로 보입니다(누를 것 없이). 다른 단계의 지침은 이 표에서 봅니다.

이 일정을 프로그램으로 등록~

구획에서 기간을 맞추고 단계를 더하고 지침을 적고 나면 그 지식은 그 구획 안에만 있습니다. [설정] 탭 [프로그램] 카드 맨 아래[프로그램으로 등록] 으로 재사용할 수 있게 만듭니다.

  • 담기는 것은 지금 실제로 따르는 단계 목록입니다 — 뺀 단계는 빠지고, 더한 단계는 들어가고, 기간은 표준이 아니라 경계 사이의 실제 날수입니다. 지침도 함께 갑니다.
  • 목표값과 목표 항목은 원본 프로그램 것을 그대로 옮깁니다(구획이 손대지 않는 값입니다). 다만 등록 응답에는 단계마다 목표 옆에 이 구획이 실제로 잰 분포가 함께 옵니다 — 중앙값과 사분위(p25~p75)를, 센서마다 따로. 단계 일수는 실측으로 갱신되는데 목표값만 갱신할 길이 없었던 자리입니다.
  • AI에게 등록을 시킬 때 adopt_targets 를 켜면 애매하지 않은 항목만 실측 중앙값으로 바꿔 담습니다. 센서가 둘 이상이라 값이 갈리거나, 그 단계에 잰 것이 없거나, 곡선이 걸렸거나, 항목 정의의 범위를 벗어나면 원본을 지키고 이유를 말합니다 — 어느 센서를 쓸지는 사람이 정할 일이라 시스템이 고르지 않습니다.
  • 화면에서도 [등록]을 누르면 그 자리 아래에 이 비교가 펼쳐집니다 — 단계마다 목표 → 이 구획 중앙값, 센서가 갈리면 센서마다 한 줄씩. 보여 줄 뿐 아무것도 바꾸지 않으니, 고칠지는 그 숫자를 보고 정하시면 됩니다.
  • 이 구획은 옮겨지지 않습니다. 등록은 복사입니다 — 진행 중인 작기의 해석이 등록 한 번에 바뀌면 "그때 무엇을 목표로 길렀나" 의 답이 달라집니다. 새 프로그램을 이 구획에도 쓰려면 [설정]에서 고르면 됩니다.
  • 이름이 겹치면 뒤에 번호가 붙습니다.
  • 적어 둔 지침은 단계가 넘어가도 남습니다. 지나간 단계의 관찰이 전환 한 번에 사라지면 기록으로서 값이 없습니다.
  • 단계 전환 줄에서 [연기]를 누르면 그 날짜로 미룹니다. 같은 칸의 [확인]은 "그 날 넘어갔다"(사실)이고, [연기]는 "그 날 넘어갈 것"(계획)입니다.
  • 지나간 경계는 여기서 고치지 않습니다 — 그것은 [확인]·[마지막 되돌리기]가 다루는 일입니다.
  • 날짜를 하나라도 직접 정하면 그 구획은 적산온도 대신 날짜로 판정합니다. 전부 지우면 적산온도로 돌아옵니다.
  • 예상 종료일도 고친 일정을 따라갑니다.

자동 전환~

구획단계 자동 전환을 켜면 확인 없이 기록됩니다. 구획 모달 [설정] > 단계 일정에 있습니다.

  • 구획마다 정합니다. 같은 프로그램을 쓰는 두 구획이 서로 달라도 됩니다 — 자동으로 넘겨도 되는지는 작물이 아니라 그 자리를 사람 눈 없이 믿을 수 있는가의 문제입니다.
  • 기본은 꺼짐입니다. 켜져 있는 것이 기본이면 사람이 아무 결정도 하지 않았는데 단계가 스스로 넘어갑니다.
  • 기록되는 날짜는 자료에서 되짚습니다 — "열어 본 날"이 아닙니다. 3주 뒤에 열어 봐도 같은 날짜가 남습니다.
  • 되짚을 근거가 없으면 기록하지 않고 사람에게 묻는 상태로 둡니다.
  • 자동으로 남은 줄은 이력에 "자동"으로 구분됩니다.

자원까지 자동이 되지는 않습니다

단계가 자동으로 넘어가도 관개·시비 함수는 켜지지 않습니다. 그것은 별개의 결정이라 [적용]을 눌러야 합니다.

구획 직접 관리하기~

/plots는 모든 구획을 나열합니다 — 지도·대지·구역·종류로 걸러볼 수 있고, 이미 끝난 구획을 포함할지 스위치로 정합니다. 구획은 여기서 만들지 않습니다 — 구획은 디자인 도구의 구획 모드에서 그려야만 생기고, 이 페이지는 이미 있는 구획을 관리하는 곳입니다.

하나를 누르면 이 페이지가 프로그램용으로 쓰는 것과 같은 종류의 드로어가 열립니다 — 일정(단계별 기간), 지침, 그리고 그 구획만의 목표까지 하나의 단계 트랙 안에서 함께 고칩니다. [저장]을 누르기 전까지는 아무것도 나가지 않습니다.

AoT Plot 위젯은 이 페이지로 가지 않고도 대시보드에서 구획 하나를 계속 보기 위해 똑같은 드로어를 엽니다. 지도 위젯의 구획 팝업은 같은 운영 사실을 보여주지만 아무것도 고치지 않습니다.

관련 문서~

  • 디자인 도구 — 구획을 그리는 곳
  • 지도 위젯 — 구획을 보고 운영하는 곳
  • AoT Plot 위젯 — 대시보드에서 구획 하나를 계속 보는 위젯, 이 페이지와 같은 편집 드로어를 씁니다
  • 시설 관리 — 도형 없이 구역 자체가 위치인 구획