Astrologia — Motor de Mapas Completos
Calcula quatro sistemas a partir de uma única entrada de nascimento: BaZi, Ocidental Tropical, Védico Sideral e Design Humano.
Entradas (todos os sistemas)
| Campo | Notas |
|---|---|
year, month, day | Data do calendário, horário civil local |
hour, minute | Horário civil local no formato 24h |
lat | Graus, + Norte |
lon | Graus, + Leste |
tz_offset | Offset UTC em horas, ex. Tailândia +7 |
Se faltar data, hora ou local, pergunte ao usuário — não adivinhe. A precisão do fuso horário/coordenadas altera diretamente o Ascendente, as cúspides das casas, o pilar da hora e todas as linhas do Design Humano.
Dois motores — escolha um
1. Python — autoritativo (Swiss Ephemeris)
scripts/astrology.py usa pyswisseph para todos os cálculos planetários e é a fonte da verdade. Prefira este motor.
python scripts/astrology.py 1992 8 8 16 49 6.53995 101.29 7
# args: year month day hour minute lat lon tz_offset
Ou passe JSON via env var (bom para chamadas programáticas):
WOR_INPUT='{"year":1992,"month":8,"day":8,"hour":16,"minute":49,"lat":6.53995,"lon":101.29,"tz_offset":7}' python scripts/astrology.py
Sem argumentos e sem env var, ele executa um mapa padrão embutido.
Arquivos de efemérides: o script procura por dados .se1 em ../data relativo a scripts/, depois cai para data/ephe. Este repositório os armazena em assets/. Para usar os arquivos reais do Swiss Ephemeris (em vez do fallback Moshier), chame a função diretamente com o caminho:
from astrology import run_full_astronomical_profile
run_full_astronomical_profile(1992, 8, 8, 16, 49, 6.53995, 101.29, 7,
ephe_path="assets")
Instale a dependência se estiver faltando: pip install pyswisseph.
1b. Python — leitura em tailandês (camada de interpretação)
scripts/reading.py importa os motores acima e transforma a saída bruta em uma leitura em tailandês em texto simples cobrindo todos os quatro sistemas. Use quando o usuário quiser uma leitura real (คำอ่าน/คำทำนาย), não apenas números brutos.
python scripts/reading.py 1992 8 8 16 49 6.53995 101.29 7 m
# args: year month day hour minute lat lon tz_offset [gender]
# gender (m/f) é opcional — necessário para a direção do 大運 (Da Yun)
Ele carrega automaticamente os arquivos de efemérides assets/*.se1 inclusos. Suas tabelas de interpretação estão em tailandês (ELEMENT_TH, DEITY_TH, NAKSHATRA_TH, TYPE_TH, etc.) e podem ser estendidas localmente. Ele também calcula, para BaZi: 12 Estágios da Vida (十二長生), 18 estrelas 神煞 (文昌/Inteligência, 太極貴人, 桃花, 驛馬, 華蓋, 干祿, 紅艷煞, …), Na Yin (納音), Kong Wang (空亡), força do mestre do dia com elementos favoráveis/evitáveis (喜用神/忌神), Da Yun (大運) ciclos de 10 anos anotados com seus dez deuses e marca de elemento favorável, Liu Nian (流年) pilares anuais, e uma leitura resumida final em tailandês (seção 5) que une BaZi + Design Humano + Ocidental. Os 神煞 usam fórmulas clássicas (algumas escolas diferem); o restante é exato. reading.py calcula os dez deuses do BaZi por si só com a polaridade correta (direto vs indireto), porque a tabela embutida do astrology.py rotula todo tronco de mesmo elemento como "Mestre do Dia".
A saída cobre: tempo solar verdadeiro + quatro pilares + dez deuses + contagens de cinco elementos; Ascendente/MC, planetas, cúspides Placidus, aspectos; rashi sideral/nakshatra/pada/navamsha; e tipo de Design Humano, estratégia, autoridade, definição, perfil, cruz da encarnação, variável, centros, canais e ativações de personalidade/design.
2. TypeScript — sem dependências, aproximado
scripts/astro.ts reimplementa os mesmos quatro sistemas sem dependências, para ambientes sem Python/Swiss Ephemeris. Execute com npx tsx scripts/astro.ts — mas note que ele exporta apenas funções; não há executor CLI. Escreva um pequeno driver que o importe:
import { computeChart } from './astro';
const chart = computeChart({
year: 1992,
month: 8,
day: 8,
hour: 16,
minute: 49,
utcOffsetHours: 7,
latitude: 6.53995,
longitude: 101.29
});
console.log(chart);
Trate a saída do TS como apenas nível de signo/porta. As ressalvas de precisão estão documentadas no topo de astro.ts: Sol ~0.01°, Lua ~0.1–0.3°, planetas Keplerianos (sem perturbações, até ~1° em planetas exteriores), Placidus não confiável acima de ~66° de latitude. Se um planeta estiver perto de um limite de signo/casa/porta, diga isso e verifique com o motor Python, em vez de afirmar.
Interpretando resultados
Os scripts calculam apenas — eles geram posições e classificações brutas. A leitura/interpretação é seu trabalho. Leia o arquivo de referência correspondente antes de interpretar cada sistema:
| Sistema | Referência | Leia para |
|---|---|---|
| BaZi / Quatro Pilares | references/bazi.md | Mestre do Dia, cinco elementos, dez deuses, significados dos pilares |
| Ocidental | references/western.md | Planetas, signos, casas, aspectos, ângulos |
| Védico | references/vedic.md | Rashi, nakshatras, regentes, padas, navamsha, ayanamsa |
| Design Humano | references/human-design.md | Tipo, autoridade, definição, perfil, centros, canais |
Carregue apenas a(s) referência(s) para o sistema que o usuário realmente perguntou. Quando o usuário pedir uma leitura completa, execute o motor, então percorra cada sistema solicitado usando sua referência e traduza a saída para linguagem simples (tailandês se o usuário escrever em tailandês) em vez de recitar tabelas brutas.
Notas específicas de cada sistema:
- BaZi — o pilar do mês muda nos termos solares (não no dia 1), então nascimentos perto de um limite de termo precisam do tempo solar verdadeiro.
- Ocidental — pondere os aspectos pelo orb que o motor reporta.
- Védico — o regente do nakshatra e o pada importam mais do que o rashi para previsões.
- Design Humano — o timestamp do Design é encontrado por 88° de arco solar antes do nascimento, não exatamente 88 dias.
Não fazer
- Não invente posições planetárias, números de portas ou nomes de cruz — sempre execute um motor.
- Não apresente saída aproximada do TS como sendo de nível de efeméride.
- Não assuma um fuso horário; confirme-o com o local de nascimento e data (horário de verão e offsets históricos alteram os resultados).