Criando um motor star-Space
este manual descreve como adicionar uma estrela ao SpaceEngine. Antes de continuar, é recomendável que você leia este manual: introdução.
a maioria das estrelas na instalação padrão do SpaceEngine são armazenadas no arquivo csv data/catalogs/Catalogs0980.pak / estrelas / HIPPARCOS.csv. Este é o catálogo de estrelas HIPPARCOS com cerca de 110.000 estrelas. Outras estrelas, incluindo sistemas binários, são armazenadas em vários arquivos sc no mesmo arquivo pak do sistema. Esses arquivos padrão não devem ser modificados ou alterados de forma alguma. Se você quiser atualizar uma estrela, removê-la ou adicionar uma nova, crie seu próprio arquivo SC ou csv na pasta addons/catalogs/stars/. SpaceEngine tem opções de script para modificar e remover estrelas ou outros objetos dos catálogos padrão, ou para adicionar um novo.
o formato csv para catálogos foi projetado para criar grandes catálogos de objetos com dados semelhantes. É mais compacto e carrega mais rápido que o sc, mas tem limites para os tipos de dados que podem ser especificados nele. É apenas uma tabela com valores separados por vírgulas. O formato sc é projetado para especificar todos os dados possíveis que SE pode usar para descrever um objeto. É um texto semelhante a um script com’ tags ‘ usadas para descrever um objeto (estrela ou sistema estelar neste tutorial) e seus vários parâmetros. Primeiro, descreveremos o formato do arquivo sc.
O catálogo de estrelas
Vamos considerar que você deseja criar uma nova estrela solitária chamada de “Mono”, um buraco negro com disco de acreção chamado “Buraco”, e uma estrela binária sistema chamado de “Bin”, que contém duas estrelas “Bin” e “Bin”B”. Vamos considerar que as estrelas “Bin A “e” Bin B ” já estão descritas em algum catálogo como estrelas solitárias, e você deseja excluí-las para criar um sistema estelar binário adequado com órbitas para cada componente. Vá para o diretório addons/catalogs/ stars / (crie-o se não existir) e crie um novo documento de texto lá. Renomeie-o para mystars.sc (o nome do arquivo não importa, mas certifique-se de que ele não corresponda a algum arquivo existente, caso contrário, seu arquivo o substituirá). Abra-o no bloco de notas e digite este código:
Star “Mono”
{
Dez -25 12 11 // declinação
Dist 100.0 // distância do Sol
Classe “G5V” // espectral de classe
Lum 0.86 // luminosidade, ou
//AbsMagn 5.31 // magnitude absoluta, ou
//AppMagn 10.31 // magnitude aparente
RadSol 0.95 // raio Solar de raios
MassSol 0.91 // massas em massas Solares
Teff 5200 // superfície a temperatura em Kelvin
}
// Cria um novo objeto – uma solitária estrela (buraco negro) com extra
// parâmetros (disco de acreção) no catálogo de planetas. Observe
/ / que seu nome aqui é “Hole system”, veja por que abaixo.
StarBarycenter “Buraco sistema”
{
Dez 64 16 38 // declinação
Dist 250.0 // distância do Sol
Classe “X” // espectral de classe – buraco negro
Lum 150 // luminosidade de todo o sistema (disco de acreção)// isso é o suficiente, discos de acreção será descrito no catálogo de planetas (veja abaixo).
}
// remove estrelas solitárias dos catálogos mais antigos.
remover “Bin a”
remover “Bin B”
// cria um novo objeto – um baricentro de um sistema estelar binário,
// quais componentes serão descritos no catálogo de planetas (veja abaixo).
StarBarycenter “Bin”
{
Dez 28 18 47 // declinação
Dist 251.652 // distância do Sol
// o Que é suficiente, a StarBarycenter tag não precisa de outros parâmetros (ver abaixo).
}
Para adicionar uma nova estrela ou modificar uma estrela que já foi descrito nos catálogos, basta definir um novo objeto (Estrela ou StarBarycenter) com o mesmo nome em uma estrela de script. O SpaceEngine atualizará a estrela antiga com os novos dados (também é possível alterar seu tipo – de estrela para StarBarycenter e vice-versa).
para remover uma estrela dos catálogos, use o parâmetro remover com o nome dessa Estrela. Isso é útil para atualizar estrelas binárias no catálogo que são representadas em SE como duas estrelas separadas, em um sistema estelar binário completo com cada estrela em uma órbita correta. Nota: O parâmetro Remove parece afetar todos os arquivos de catálogo, independentemente da data de modificação. É um bug na versão atual (0.9.8.0).
observe que o catálogo de estrelas não descreve os componentes de sistemas estelares binários ou múltiplos. Eles devem ser descritos no catálogo de planetas e referindo-se ao baricentro com o parâmetro ParentBody (veja abaixo). Assim, estritamente falando, os catálogos de estrelas em SE são catálogos de sistemas estelares, não as próprias estrelas (embora permitam descrever estrelas solitárias sem criar catálogos de planetas para elas). Parâmetros visuais como a luminosidade geral do sistema serão calculados pelo SpaceEngine automaticamente, com base nos dados dos componentes do sistema, descritos no catálogo de planetas. Eles podem, no entanto, ser forçados definindo parâmetros luminosidade, AppMagn etc. na tag StarBarycenter.
os detalhes do script da estrela
os seguintes parâmetros podem ser usados dentro das tags Star e StarBarycenter:
Ra-ascensão reta em horas, em formato decimal ou formatado como HH MM SS.SSS
declinação em graus, em formato decimal ou formatado como DD MM SS.SSS
Dist-distância do Sol em parsecs.
CenterOf-usado para substituir o sistema de buracos negros supermassivos processuais no centro de uma galáxia ou aglomerado globular. O valor do parâmetro é o nome da galáxia ou aglomerado, por exemplo centrode “Via Láctea”. Apenas um sistema de Buraco negro supermassivo pode existir em uma galáxia ou aglomerado. Se já estiver definido em algum catálogo, ele será substituído/atualizado por este. Se este parâmetro for definido, o sistema de Buraco negro supermassivo procedural no objeto correspondente será desativado, mas este será renderizado como um sistema estelar usual. Portanto, os parâmetros RA, Dec e Dist ainda são necessários. Um sistema típico deve conter o Buraco Negro, o disco de acreção opcional e muitas estrelas orbitando-o. Tudo isso deve ser descrito no catálogo planetas; o catálogo de estrelas lida apenas com as coordenadas do sistema e sua classe (Classe “X” ou classe “BLACKHOLE”).
Noplanetas-desative a geração de planetas processuais, se especificado como Noplanetas true.Lum, luminosidade, AppMagn, AbsMagn – permite uma dessas opções, ou combinação delas (veja “solver estrela” abaixo para detalhes): Lum, luminosidade – luminosidade da estrela em unidades da luminosidade do sol, ou AppMagn – magnitude aparente (óptica) da estrela, ou absmagn – magnitude absoluta (óptica) da Estrela.
avançado: AppMagnR, AppMagnr, AppMagnI, AppMagni, AppMagnJ, AppMagnH, AppMagnKs, AppMagnK, AppMagnW1, AppMagnW2, AppMagnW3 – estrela de magnitude aparente correspondentes espectros de bandas. Use – os apenas para anãs marrons, se sua magnitude aparente na banda óptica for desconhecida. O SpaceEngine realiza um cálculo simples da magnitude aparente óptica, assumindo que a estrela é uma anã marrom ou anà m tardia. Não use esses parâmetros para outros tipos de estrelas.
string Classe A com a classe espectral da estrela:
classes estelares normais: o, B, A, F, G, K, M
classes Subdwarf: sdO, sdB, sdA, sdF, sdG, sdK, sdM (ou De a, B, a, F, G, K, M, com luminosidade classe VI)
anã Marrom classes: L, T, A
anã Branca classes: DA, DB, FAZER, DQ, DZ, DC, DX, DAB, DAO, DAZ, DBZ ou WD (geral anã branca de classe)
Wolf-Rayet classes: WN, WN/C, WC, WO
Zircónio e carbono classes: MS, S, SC, C-I, C-N, C-J, C-H, C-Hd, C, R, N
classes Especiais: Q, estrela de nêutrons – nêutrons, x, Buraco Negro – buraco negro, z, buraco de minhoca – buraco de minhoca, p – planemo (planeta rogue)
todas as classes listadas acima podem ter o índice de subclasse – número 0 a 9 em formato decimal (0 a 11 para Estrelas Wolf-Rayet). O SpaceEngine usa apenas até um decimal, ou seja, 3,25 será arredondado para 3,2.
Todas as classes, exceto em branco anões podem ter a luminosidade classe de índice: 0, Ia0, Ia+ Ia, Iab, Ib, II, III, IV, V, VI
Exemplos: Classe “G2V”, Classe “M5.2III”, Classe “DB3.1”, Classe “sdB5” (igual a Classe “B5VI”).
um espaço também é permitido: classe “G2 V”, Classe ” M5.2 III”, Classe “DB 3.1”.
se a subclasse ou o índice de luminosidade não puderem ser fornecidos: classe “G2″, Classe” M III”, classe”K”. Nesse caso, o SpaceEngine tentará calculá-los com base nos dados disponíveis (luminosidade ou magnitude visual e distância, etc., consulte solucionador de estrelas) ou atribuirá a classe de luminosidade padrão “V” (A estrela da sequência principal).
massa – estrela em unidades de massas terrestres, ou
massa – estrela em unidades de massas solares. Usado apenas para Estrelas solitárias (tag Star). Se definido na tag StarBarycenter, ele pode ser usado no solucionador de estrelas (veja abaixo).
raio – estrela raio em quilômetros, ou
RadSol, raio RadiusSol – estrela em unidades de raios solares. Usado apenas para Estrelas solitárias (tag Star). Se definido na tag StarBarycenter, ele pode ser usado no solucionador de estrelas (veja abaixo).
Teff, temperatura-temperatura da fotosfera da estrela (“superfície”) em Kelvin. Usado apenas para Estrelas solitárias (tag Star). Se definido na tag StarBarycenter, ele pode ser usado no solucionador de estrelas (veja abaixo).
FEH – Star metalicity. Não é usado por enquanto, mas será usado no futuro, por isso vale a pena adicioná-lo ao catálogo se houver informações disponíveis.
você pode usar o registro star solver para detectar erros no catálogo stars (para obter detalhes, consulte Star solver e verificar se há erros nos scripts Introduction to SE).
o catálogo de planetas
permite continuar criando nosso exemplo addon. A estrela “Mono” não precisa de nada extra para ser colocada no catálogo de planetas, todas as informações necessárias foram fornecidas no catálogo de estrelas. Deve ter o buraco negro “buraco” e componentes binários do sistema”Bin”: “Bin a” e “Bin B”. Vá para o diretório addons/catalogs/ planets / (crie-o se não existir) e crie um novo documento de texto lá. Renomeie-o para myplans.sc (como foi observado na seção “o catálogo de estrelas”, o nome do arquivo não importa, mas certifique-se de que ele não corresponda a algum arquivo existente, caso contrário, seu arquivo o substituirá). Abra-o no bloco de notas e digite este código:
Star “Buraco”
{
Classe “X” // buraco negro “espectral de classe”
MassSol 15.0 // em unidades Solares, raio será calculado automaticamente
//Lum 0.0 // um buraco negro tem zero de luminosidade – não especificar qualquer // parâmetros de rotação
Obliquidade 16
EqAscNode 64
RotationPeriod 1.0 e-7 // buracos negros giram muito rápido!// disco de acreção
disco de acreção
{
Temperatura de 3000 // em Kelvin
Luminosidade 150 // Solar luminosidades1 // render escala de brilho
Densidade 8 // um pouco de magia valor
TwistMagn 60 // um pouco de magia valor
}
// a Órbita da marca é ignorada, igual a posição estática no centro do sistema
}
// Cria um novo objeto – primeiro componente de um sistema de estrelas binárias
Star “Bin Uma”
{
Classe “G1V”
Luminosidade 1.02
MassSol 1.09
RadiusSol 1.1
// rotational parameters
Obliquity 82.2
EqAscendNode 67.726
RotationPeriod 923.6
RotationOffset 64.7
// orbit around the barycenter
Orbit
{
// but mass ratio 1.09:0.92 is taken into account!
SemiMajorAxis 10.765 // in AU
Period 79.914 // in years
Eccentricity 0.5179
Inclination 82.986
AscendingNode 67.726
ArgOfPericenter 3.772
MeanAnomaly 200.119
}
}
// Cria um novo objeto – segundo componente de uma estrela binária do sistema
Star “Bin B”
{
Classe “K0V”
Luminosidade De 0,29
MassSol De 0,92
RadSol 0.90
// parâmetros de rotação
Obliquidade 82.6
EqAscendNode 67.726
RotationPeriod 850.5
RotationOffset 127.4
// órbita em torno do baricentro
Órbita
{
// mas a razão de massa 1.09:0.92 é levado em conta!
SemiMajorAxis 12.755 // em AU
Período 79.914 // em anos
Excentricidade 0.5179
Inclinação 82.986
AscendingNode 67.726
ArgOfPericenter 183.772
MeanAnomaly 200.119
}
}
Vamos dar uma olhada mais de perto este script. É chamado de “catálogo de planetas” porque é projetado principalmente para fazer planetas e luas. Mas o próprio” corpo estelar”, especialmente em sistemas binários, também deve ser descrito aqui. É uma regra comum: qualquer objeto que tenha uma órbita deve ser descrito no catálogo de planetas. Os componentes de uma estrela binária têm órbitas, então é por isso que eles devem estar no catálogo de planetas. Ele também permite que você descreva muito mais parâmetros do que o catálogo de estrelas (orientação do eixo de rotação e período de rotação, coroa de estrelas, disco de acreção, texturas de superfície e órbita), então é por isso que mesmo Estrelas solitárias como o sol também podem ser descritas no catálogo de planetas. Para saber mais sobre os parâmetros usados no catálogo de planetas e sobre a criação de um planeta, leia o Guia Criando um planeta.
no código de exemplo acima, descrevemos pela primeira vez o “buraco” estelar solitário com parâmetros adicionais que não podem ser descritos no catálogo de estrelas (parâmetros rotacionais e disco de acreção). Para especificá-los, é necessário descrever a estrela no catálogo de estrelas como um StarBarycenter, apesar do fato de que a estrela é solitária, e fazer uma segunda descrição para ela no catálogo de planetas com a estrela tag. O parâmetro ParentBody nessa tag de estrela deve ser definido como o nome do StarBarycenter que você descreveu no catálogo de estrelas. Importante: a Tag Star no catálogo planets e a tag StarBarycenter no catálogo stars devem ter nomes diferentes. Ou seja, se a estrela tiver o nome “buraco”, o baricentro deve ser chamado de “Sistema de buracos” ou “barra de buracos” ou algo assim. Ao criar um addon com alguma estrela real, que tem várias designações nos catálogos astronômicos, é uma boa prática dar um ao StarBarycenter e o resto à estrela.
o catálogo de planetas também permite especificar a luminosidade, magnitude absoluta ou aparente da estrela, classe espectral, massa, raio e temperatura – os mesmos parâmetros do catálogo de estrelas. Depende de você onde especificar esses parâmetros: no catálogo de estrelas ou no catálogo de planetas, a duplicação em ambos não é necessária.
A etiqueta de órbita deve ser ignorada para Estrelas solitárias, o SpaceEngine gerará uma posição estática no centro do sistema para essa estrela. Você pode usar Orbit {Type “Static” } ou StaticPosXYZ (0 0 0) com o mesmo efeito, mas isso não é necessário.
o baricentro também pode ser usado para criar estrelas binárias e múltiplas. No catálogo de planetas, descrevemos duas estrelas “Bin A “e” Bin B “com suas órbitas ao redor do baricentro principal do sistema” Bin ” (veja a descrição da etiqueta de órbita no Guia Criando um planeta para detalhes). Para criar um sistema hierárquico de múltiplas estrelas, crie um baricentro secundário (usando a tag Barycenter no script planet catalog), que orbita o baricentro principal do sistema, em seguida, adicione duas estrelas que estão orbitando este baricentro secundário. Você pode repetir esse esquema muitas vezes para criar sistemas mais complexos. O SpaceEngine permite uma hierarquia de objetos de nível ilimitado, mas, na realidade, os sistemas estelares não têm mais do que 3-4 níveis de hierarquia.
os planetas para cada estrela ou baricentro local também podem ser especificados no catálogo de planetas. O parâmetro ParentBody para cada planeta/barycenter/estrela deve ser definido como o nome do objeto pai que está orbitando. Se a estrela for solitária e o catálogo de planetas não tiver nenhum objeto filho (planetas) para essa estrela descrita, o SpaceEngine gerará um sistema planetário processual. Você pode desativar isso especificando NoPlanets true no script stars.
os parâmetros de uma estrela/baricentro no catálogo de estrelas determinam a aparência da estrela enquanto a Olha do espaço interestelar, ou seja, quando ela é renderizada como um ponto. Para sistemas multiestelares, o SpaceEngine precisa de alguma classe espectral “média” para renderizar o sistema de longe. Para sistemas processuais, o SpaceEngine escolhe a classe espectral da estrela mais brilhante do sistema (consulte “solucionador de estrelas” para obter detalhes). Isso funciona muito bem na maioria dos casos, porque as luminosidades das estrelas diferem em muitas ordens de magnitude. Portanto, ao criar um sistema estelar múltiplo, você pode especificar a classe espectral do StarBarycenter (no catálogo de estrelas) como a mesma classe da estrela mais brilhante desse sistema. Caso contrário, o SpaceEngine fará isso automaticamente. A luminosidade do StarBarycenter deve ser igual à luminosidade da soma de todas as estrelas do sistema (incluindo a luminosidade dos discos de acreção), ou ignorada para forçar o solucionador de estrelas a calculá-lo automaticamente.
Para resumir, pagam por favor a atenção para o seguinte, caso contrário o código não vai funcionar ou vai trabalhar incorretamente:
1) Nas estrelas de catálogo, descrever uma estrela com o StarBarycenter, se você deseja especificar o costume de rotação de parâmetros, disco de acreção, etc, ou se você estiver criando um sistema múltiplo. Nesse caso, você também deve criar um catálogo de planetas e descrever a estrela ou vários componentes estelares lá. Se você precisar apenas de massa, raio e temperatura para sua estrela, ou se estiver bem com esses valores sendo gerados/computados pelo SpaceEngine, descreva-o com a tag Star e não crie um catálogo de planetas.
2) o nome de uma estrela no catálogo de planetas não deve ser o mesmo que o nome de StarBarycenter. O nome de StarBarycenter deve ser especificado como o pai da estrela em seu parâmetro ParentBody.
3) Se a estrela for solitária, não use a etiqueta de órbita para ela ou torne sua órbita estática (Orbit { Type “Static” } ou StaticPosXYZ (0 0 0)), portanto, coincide com o baricentro.4) se a estrela for binária, descreva as duas estrelas com o nome do StarBarycenter em seu parâmetro ParentBody e faça órbitas adequadas ao redor do barycenter para elas.
Você pode usar o star solver o log para detectar erros no catálogo de planetas, bem como para as estrelas de catálogo (para detalhes, ver Estrelas, solver e a Verificação de erros na Introdução SE scripts)
A estrela solver
A estrela do solver é um conjunto de código que tenta calcular ou gerar dados em falta para uma estrelas, com base em dados fornecidos. Muitas vezes é a situação na astronomia que alguns dados são fornecidos em catálogos, mas alguns estão faltando. SpaceEngine requer esses parâmetros para renderizar corretamente uma estrela (sistema estelar):
– coordenadas 3D completas de uma estrela (RA, Dec, Dist). Se o catálogo de estrelas não fornecer uma distância, o solucionador de estrelas pode tentar calculá-lo com base na magnitude aparente e absoluta (ou luminosidade) da estrela. Se RA e Dec não forem fornecidos, o Star solver gerará valores aleatórios para eles, porque não há como calculá-los. Um valor aleatório para a distância também é gerado se o solucionador de estrelas não conseguiu calculá-lo (consulte o registro de erros abaixo para obter mais detalhes).
– classe espectral da Estrela. Sem ele, o SpaceEngine não terá ideia do que é essa estrela e não poderá renderizá-la. O solucionador de estrelas pode tentar determinar a classe espectral observando o raio, a massa e a temperatura, se forem fornecidos. Para sistemas multiestelares, o solucionador de estrelas pega a classe espectral do componente mais brilhante (calculado ou retirado do catálogo de planetas) e o atribui como a “classe” de todo o sistema (se não foi especificado na tag StarBarycenter diretamente).
– brilho da Estrela. Pode ser calculado a partir de luminosidade, magnitude absoluta ou magnitude aparente e distância. Se nenhum for fornecido, a classe espectral pode ser usada para determinar aproximadamente a luminosidade. Se mesmo a classe espectral não for fornecida, o solucionador de estrelas pode tentar usar raio e temperatura para calcular a luminosidade usando a equação de Stefan–Boltzmann. Para sistemas multiestelares, o solucionador de estrelas resume a luminosidade de cada componente e a atribui como a luminosidade de todo o sistema (se não foi especificado diretamente na tag StarBarycenter).
– propriedades físicas da Estrela: massa, raio e temperatura. Se não for fornecido, o solucionador de estrelas irá computá-los com base na classe espectral (tipicamente). A temperatura pode ser derivada da classe espectral diretamente, então o raio é calculado com base na temperatura e luminosidade usando a equação de Stefan–Boltzmann. Portanto, se você encontrar um tamanho incorreto ou irrealista de uma estrela, tente encontrar seus dados reais de raio e especifique-os no catálogo.
como foi observado, o catálogo de estrelas não pode ser usado para definir os parâmetros rotacionais de uma estrela (ou seja , período de rotação, inclinação axial e oblatude), bem como aparência da superfície (tamanho das células de granulação, etc), corona, disco de acreção e órbita: o catálogo de planetas é usado para isso. Alguns parâmetros podem ser gerados proceduralmente se estiverem ausentes no catálogo de planetas. Os planetas também podem ser descritos no catálogo de planetas ou ser gerados proceduralmente (se o catálogo de planetas não tiver nenhum objeto filho para a estrela descrita, e a escrita da estrela não tiver nenhum Noplaneta verdadeiro especificado).
o star solver pode imprimir notificações sobre cálculos realizados, avisos e erros para o sistema de arquivos de log/se.faça login na inicialização do SpaceEngine. Consulte Introdução aos scripts SE para obter detalhes sobre verificação de erros em scripts.
o formato csv para o catálogo de estrelas
o SpaceEngine suporta o formato csv (“valores separados por vírgulas”) para catálogos de estrelas e galáxias massivas. É um formato de texto simples com uma estrela descrita por linha, com valores separados por vírgulas. A instalação padrão do SpaceEngine tem um catálogo csv star-data / catalogs / Catalogs0980.pak / estrelas / HIPPARCOS.csv, que tem 112.523 estrelas, e tem um tamanho (descompactado) de apenas 7,5 MB. O formato csv é mais compacto que o sc, mas tem algumas limitações:
1) apenas Estrelas solitárias podem ser descritas, o análogo da tag StarBarycenter é impossível.
2) apenas esses parâmetros são permitidos: nome, RA, Dec, Dist, AppMagn, SpecClass, MassSol, RadSol, temperatura.
o formato do arquivo é simples: a primeira linha é um cabeçalho que descreve os nomes dos parâmetros (separados por vírgulas), todas as outras linhas são dados de estrelas – valores dos parâmetros correspondentes (também separados por vírgulas). Aqui está o exemplo das primeiras 4 linhas dos HIPPARCOS.arquivo csv:
HIP 14066/HD 18665,3.02094205,36.1179219,487.804884,7.24999999,K2V,,,
HIP 14775/HD 278329,3.17876994,36.5130485,505.050497,10.1093756,K0V,,,
QUADRIL 12888,2.76132567,32.8238759,476.190497,9.64843834,K0V,,,
Observe que o nome da estrela e de sua classe espectral, não estão entre aspas, e da falta de parâmetros (MassSol, RadSol e Temperatura) são apenas em branco, mas vírgulas separando-as ainda são necessárias.
os catálogos csv têm prioridade sobre os catálogos sc, ou seja, são carregados primeiro. Mas então star solver leva a data de modificação do arquivo / pak para realizar a fusão ou atualização de dados em estrela. O parâmetro config-file CsvLogLevel no config / main-user.o arquivo cfg controla o nível de registro do star solver para todos os arquivos csv.