Event Filter Basics
The Event Filter is a powerful tool that lets you sift through astronomical events in real-time, so you only see the ones that matter to you. Consider it a digital sieve, catching the specific events you want while ignoring the others.
How It Works
The filter works with a simple true
or false
logic. For every event your study finds, Aquila checks the expression you've written in the Event Filter box.
- If your expression evaluates to
true
, the event is kept and added to your results. - If your expression evaluates to
false
, the event is discarded and you won't see it.
For example, if you only want events where the Moon is above the ecliptic, you could use the expression Moon.Latitude > 0
. When a study finds an event, Aquila will check the Moon's latitude at that exact moment. If it's greater than 0, the expression is true
, and the event is saved. If not, the expression is false
, and the event is ignored.
Building a Filter Expression
You build expressions using a combination of Objects, Properties, Operators, and Functions.
Objects & Properties
Objects are the celestial bodies and zodiac signs. Bodies are the actual planets and celestial points, like the Sun
, Moon
, or Mean Node
. To make your filters more flexible, you can use generic bodies that automatically refer to the actual bodies involved in an event. For example, a Mundane Aspect involves an inner and outer body, which correspond to Body1 and Body2. This allows you to refer to the outer body as Body2 in your filter script, regardless of which planet it is. The available generic bodies depend on the number of bodies your study uses:
- For single-body studies: Use
Body
orBody1
. - For two-body studies: Use
Body1
andBody2
. - For three-body studies: Use
Body1
,Body2
, andBody3
. - For studies with an apex body (like a Yod), the apex body is assigned the next number. For a Yod, which involves three main bodies, the apex body is
Body4
. - For studies involving natal bodies, the natal body is numbered sequentially after the transiting bodies (including any apex body).
Each body has Properties that provide specific data about the body. You access a property by typing the body's name, followed by a dot (.
), and the property name.
Property | Description | Example |
---|---|---|
.Longitude | The body's ecliptic longitude in degrees. | Venus.Longitude |
.Latitude | The body's ecliptic latitude in degrees. | Mars.Latitude |
.Distance | The body's distance in Astronomical Units (AU). | Sun.Distance |
.LongitudeSpeed | The body's speed in longitude (degrees/day). | Mercury.LongitudeSpeed |
.LatitudeSpeed | The body's speed in latitude (degrees/day). | Moon.LatitudeSpeed |
.DistanceSpeed | The body's speed in distance (AU/day). | Jupiter.DistanceSpeed |
Operators
Operators are used to compare values and combine expressions.
- Comparison Operators: Check the relationship between two values.
>
(Greater Than)>=
(Greater Than or Equal To)<
(Less Than)<=
(Less Than or Equal To)
- Logical Operators: Combine multiple
true
/false
statements.&&
(And): True only if both sides are true.||
(Or): True if at least one side is true.
Simple Example: To find events where Mars is retrograde (negative longitude speed) AND has a latitude greater than 1 degree, you would write:
Mars.LongitudeSpeed < 0 && Mars.Latitude > 1
Functions (The Easy Way)
Functions are shortcuts that make writing complex filter expressions much easier. You type the function name and provide the required information (called arguments) inside parentheses ()
. You can combine multiple functions using logical operators like && (And) and || (Or) to create highly specific filters. For example, to find events where Mercury is retrograde and in an air sign, you would write:
IsRetrograde(Mercury) && InAirSigns(Mercury)
Here is the full list of available functions.
Function | What It Does & Example |
---|---|
IsAspecting() | Checks if two bodies are in a specific aspect within an orb. IsAspecting(Body1, Body2, 90, 3) |
IsParallel() | Checks if two bodies are parallel within an orb. IsParallel(Moon, Sun, 0.5) |
IsContraParallel() | Checks if two bodies are contra-parallel within an orb. IsContraParallel(Venus, Mars, 1) |
InRange() | Checks if a body's longitude is within a specific degree range. InRange(Body, 85, 95) |
IsOutOfBounds() | Checks if a body's latitude is "out of bounds" (beyond ~±23.4°). IsOutOfBounds(Moon) |
IsRetrograde() | Checks if a body is moving retrograde. IsRetrograde(Mercury) |
IsDirect() | Checks if a body is moving direct. IsDirect(Jupiter) |
InSign() | Checks if a body is in a specific zodiac sign. InSign(Mars, Aries) |
InFireSigns() | Checks if a body is in Aries, Leo, or Sagittarius. InFireSigns(Body1) |
InEarthSigns() | Checks if a body is in Taurus, Virgo, or Capricorn. InEarthSigns(Body2) |
InAirSigns() | Checks if a body is in Gemini, Libra, or Aquarius. InAirSigns(Venus) |
InWaterSigns() | Checks if a body is in Cancer, Scorpio, or Pisces. InWaterSigns(Moon) |
InDomicile() | Checks if a body is in its sign of domicile. InDomicile(Saturn) |
InDetriment() | Checks if a body is in its sign of detriment. InDetriment(Sun) |
InExaltation() | Checks if a body is in its sign of exaltation. InExaltation(Jupiter) |
InFall() | Checks if a body is in its sign of fall. InFall(Mars) |
IsBodyPresent() | Checks if a body is involved in an event. IsBodyPresent(Saturn, Body1, Body2) |
Function Example: Instead of writing Venus.Longitude >= 30 && Venus.Longitude < 60
to see if Venus is in Taurus, you can just use the InSign()
function:
InSign(Venus, Taurus)
It's cleaner, faster, and less prone to typos!