Registration and permissions
UAT 401 UAS Regulations, Safety and Risk Management
Lesson
By the end of this module you will be able to
- Design registers of people, aircraft and policies that can check readiness before every mission
- Set advance warnings when documents are about to expire
- Check both waypoints and route legs against restricted areas
- Organise a permission evidence file that others can review
Why this matters
The drone knowledge base’s unit on preparing data before registration advises organising data on people, aircraft and equipment so it is traceable before entering official systems, and its unit on checking conditions before operating stresses checking area, date, time and type-of-work restrictions from official sources. UAT 313 taught registration and permission procedures. Once Fah Sai Survey has several pilots and drones, the real problems are rarely “not knowing the procedure” but documents expiring unnoticed or incomplete area checks. This module replaces checking from memory with a system that checks every time.
A register that can check readiness
At least three sets of documents must be valid on the mission date: the pilot’s rights (4 years under the Specific announcement studied in UAT 313), the aircraft registration (2 years under Article 15 of the B.E. 2558 announcement), and the third-party liability insurance policy, which has its own start and end dates. The three do not expire together, so a good system stores every document’s expiry date, checks every pilot–drone pairing before scheduling, and warns ahead of expiry.
Example 1 Who and which drones are ready on 16 November 2026?
The company has three pilots and three drones. Check readiness on the mission date and find documents expiring within 90 days after it (hypothetical data).
from datetime import date
mission = date(2026, 11, 16)
pilots = { # pilot rights expiry dates
"P01": date(2029, 3, 31),
"P02": date(2026, 11, 10),
"P03": date(2027, 6, 30),
}
drones = { # (registration expiry, policy end date)
"D1": (date(2027, 1, 20), date(2026, 12, 31)),
"D2": (date(2026, 11, 30), date(2026, 11, 15)),
"D3": (date(2026, 10, 1), date(2027, 5, 1)),
}
def ok(d):
return d >= mission
good_pilots = [p for p, exp in pilots.items() if ok(exp)]
for d, (reg, ins) in drones.items():
problems = [n for n, v in (("registration", reg), ("insurance", ins)) if not ok(v)]
print(f"{d}: {'ready' if not problems else 'NOT ready: ' + ', '.join(problems)}")
print("pilots ready:", good_pilots)
soon = [(k, (v - mission).days) for k, v in pilots.items() if 0 <= (v - mission).days <= 90]
for k, (reg, ins) in drones.items():
soon += [(f"{k} {n}", (v - mission).days) for n, v in (("reg", reg), ("ins", ins))
if 0 <= (v - mission).days <= 90]
print("expiring within 90 days of the mission:", soon)
D1: ready
D2: NOT ready: insurance
D3: NOT ready: registration
pilots ready: ['P01', 'P03']
expiring within 90 days of the mission: [('D1 reg', 65), ('D1 ins', 45), ('D2 reg', 14)]
Drone D2’s registration is still valid, but its policy ends one day before the mission. D3’s registration has already expired. Pilot P02’s rights ended six days before the mission. The usable pairings are therefore P01 or P03 with D1, and renewal of D2’s registration and D1’s documents should start today. Advance warnings must allow for the time authorities take to process renewals.
Checking the whole route
The CAAT announcement on prohibited, restricted and danger areas, Thailand’s AIP, and ad hoc no-fly announcements, such as in border areas, must be checked every time. A common mistake is checking only take-off, landing or waypoints, when the straight line between two points may cross a restricted area. A correct check covers both points (inside a polygon or not) and legs (crossing the polygon edge or not).
Example 2 Every waypoint is outside, but the route still passes through
A survey route has five waypoints, and a four-sided restricted area lies in its path. Using local coordinates in metres, check with ray casting and segment intersection tests (hypothetical data).
zone = [(400, 200), (900, 150), (1000, 600), (550, 700)] # hypothetical restricted area (m, local coordinates)
route = [(0, 0), (300, 100), (1100, 300), (1200, 750), (500, 800)] # route waypoints
def inside(p, poly):
x, y = p
c = False
for (x1, y1), (x2, y2) in zip(poly, poly[1:] + poly[:1]):
if (y1 > y) != (y2 > y) and x < x1 + (y - y1) * (x2 - x1) / (y2 - y1):
c = not c
return c
def cross(a, b, c, d):
def o(p, q, r):
return (q[0]-p[0])*(r[1]-p[1]) - (q[1]-p[1])*(r[0]-p[0])
return o(a, b, c) * o(a, b, d) < 0 and o(c, d, a) * o(c, d, b) < 0
edges = list(zip(zone, zone[1:] + zone[:1]))
for i, p in enumerate(route):
print(f"waypoint {i} {p}: {'INSIDE zone' if inside(p, zone) else 'outside'}")
for i, (a, b) in enumerate(zip(route, route[1:])):
hits = sum(cross(a, b, c, d) for c, d in edges)
print(f"leg {i}-{i+1}: crosses zone boundary {hits} time(s)")
waypoint 0 (0, 0): outside
waypoint 1 (300, 100): outside
waypoint 2 (1100, 300): outside
waypoint 3 (1200, 750): outside
waypoint 4 (500, 800): outside
leg 0-1: crosses zone boundary 0 time(s)
leg 1-2: crosses zone boundary 2 time(s)
leg 2-3: crosses zone boundary 0 time(s)
leg 3-4: crosses zone boundary 0 time(s)
Checking only the waypoints would wrongly conclude the route is safe, but leg 1–2 crosses the edge twice, meaning it goes in and comes out. In real work, restricted areas should be expanded by a margin before checking, using the correct coordinate system of the source data. Many flight-planning tools check this, but planners must know what their tools do and do not check.
The permission evidence file
CAAT’s UAS service guidance and the operations manual template CAAT-GM-UAS-001 help assemble documents completely. A good file lets others review it without asking its author. It should list documents with numbers and expiry dates, a route map with area-check results and the date checked, data sources with the version used, and a log of plan changes.
Class activity
Activity: the company’s register and area checks
- Design a register for pilots, drones, radio equipment and policies, with document numbers and expiry dates
- Enter hypothetical data for 5 people and 5 drones, then use Example 1 to find ready pairings on a given date
- Draw a real survey route on a map, convert it to local coordinates, and check it against restricted areas from official sources with Example 2
- Add a margin around the restricted areas and check again
- Assemble the evidence file and swap it with another group for review, recording what they could not find
Common mistakes
Watch out
- Checking only drone registration and forgetting pilot rights and policies
- Warning about expiry too late to renew before the mission
- Checking only waypoints, not route legs
- Using an old version of restricted-area data or not noting the check date
- An evidence file only its author can understand
Summary
- Readiness on the mission date means checking pilot rights, aircraft registration and policies together
- Registers should warn in advance, allowing for authority processing time
- Area checks must cover both points and legs, with a margin
- A good evidence file lets others review it on their own
Check your understanding
- How long is aircraft registration valid under the B.E. 2558 announcement?
- How long are pilot rights valid under the Specific announcement?
- A policy ends on 15 November and the mission is on 16 November. Can that drone fly?
- Why is checking only waypoints not enough?
- A single straight leg crosses a restricted area’s edge twice. What does that mean?
Answers
- 2 years
- 4 years
- No, the policy must be renewed first
- The straight line between two outside points can pass through the area
- The route goes into the area and comes out again
Key formulas
| Document valid on the mission date | |
| Advance warning |
Key references
- กระทรวงคมนาคม. (2558). ประกาศกระทรวงคมนาคม เรื่อง หลักเกณฑ์การขออนุญาตและเงื่อนไขในการบังคับหรือปล่อยอากาศยานซึ่งไม่มีนักบิน ประเภทอากาศยานที่ควบคุมการบินจากภายนอก พ.ศ. 2558. ราชกิจจานุเบกษา, 132(86 ง), 6–12. link
- สำนักงานการบินพลเรือนแห่งประเทศไทย. (2569). ประกาศ กพท. เรื่อง หลักเกณฑ์และวิธีการในการอนุญาตให้ผู้บังคับหรือปล่อยอากาศยานซึ่งไม่มีนักบิน ประเภทอากาศยานที่ควบคุมการบินจากภายนอก ที่มีน้ำหนักไม่เกิน 25 กิโลกรัม ปฏิบัติแตกต่างไปจากเงื่อนไขที่กำหนด พ.ศ. 2569 (มีผล 17 พฤษภาคม 2569). link
- สำนักงานการบินพลเรือนแห่งประเทศไทย. (2568). แนวทางการขอรับบริการสำหรับผู้รับบริการ UAS. link
- สำนักงานการบินพลเรือนแห่งประเทศไทย. (2569). ประกาศ กพท. เรื่อง กำหนดพื้นที่หวงห้ามเด็ดขาด พื้นที่หวงห้ามเฉพาะ และพื้นที่อันตราย (ฉบับที่ 2) พ.ศ. 2569. link
- สำนักงานการบินพลเรือนแห่งประเทศไทย. (2026). Aeronautical information publication Thailand (eAIP), ENR 5.1 Prohibited, restricted and danger areas (AIRAC AMDT 09/26). link
- สำนักงานการบินพลเรือนแห่งประเทศไทย. (2565). รูปแบบคู่มือปฏิบัติการบินของอากาศยานซึ่งไม่มีนักบิน (CAAT-GM-UAS-001, Issue 01 Rev 00). link
Further reading
Study the assigned knowledge units in advance, review media and take the module quiz
Preparing information before registration
Checking conditions before applying to operate
In class / field
Lecture, case discussion and in-class problem solving
Learning evidence: Quiz results and submitted exercises