Gestione automatica della pixelizzazione del cielo per DB MySQL: HEALPix e HTM Luciano Nicastro e Giorgio Calderone.

Slides:



Advertisements
Presentazioni simili
Trieste, 26 novembre © 2005 – Renato Lukač Using OSS in Slovenian High Schools doc. dr. Renato Lukač LinuxDay Trieste.
Advertisements

© 2010 Colt Telecom Group Limited. All rights reserved. Cloud Computing Lapproccio Colt Dionigi Faccedna.
Teoria e Tecniche del Riconoscimento
Parametri Acustici (ISO 3382)
Interfacce Java.
SQL applicato a SQL Server
Microsoft SQL Server 2008 Utilizzo. Creazione DataBase CREATE DATABASE CREATE DATABASE Cinema.
1 Teaching Cloud Computing and Windows Azure in Academia Domenico Talia UNIVERSITA DELLA CALABRIA & ICAR-CNR Italy Faculty Days 2010.
Luca Bianchi Windows Development Day Bologna 28 gennaio 2005 SQL Server Desktop Engine (MSDE) & SQL Server 2005 Express.
EBRCN General Meeting, Paris, 28-29/11/20021 WP4 Analysis of non-EBRCN databases and network services of interest to BRCs Current status Paolo Romano Questa.
SQL (Standard query language) Istruzioni per la creazione di una tabella: Create table ( tipo, (, [vincoli]) Primary key ( ) CHIVE PRIMARIA Foreign key(
JPA Overview della tecnologia. Java Persistence Architecture Definita nella JSR-220 EJB 3.0 ( Tentativo di unificare EJB2.1 con.
Connessione con MySQL.
Un DataBase Management System (DBMS) relazionale client/server.
MySQL Esercitazioni. Ripasso Connessione a MySQL. Creazione delle basi di dati e delle tablelle. Inserimento dei dati. Interrogazioni.
EJB Getting started Database: MySql Application Server: Pramati Server Ambiente di sviluppo: Pramati Studio 3 Applicazione esempio: Logon Trento, 30/10/2002.
prompt> java SumAverage
HDM Information Design notation v.4. HDM Information Design.
Programmazione 1 9CFU – TANTE ore
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
Avis Contact Centres Review
6.6Ordinamento di Vettori Ordinamento di dati –Applicazione computazionale importante –Virtualmente ogni organizzazione deve ordinare dei dati Enormi quantità
SQL Esercitazione per il corso “Basi di Dati” Gabriel Kuper
Giorgio CalderoneBologna, 14/12/2006 Software per database a supporto di progetti di ricerca astronomici: MCS, MyRO, DIF.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
ATE / 31 Lezione 3 i sistemi automatici di misurazione - gli ATE.
Sequence. CREARE UNA SEQUENCE CREATE SEQUENCE nome [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE]
PRODOTTO CARTESIANO Otteniamo un prodotto cartesiano quando: viene omessa la condizione di join una condizione di join non è valida tutte le righe della.
FUNZIONI DI GRUPPO Le funzioni di gruppo operano su un set di record restituendo un risultato per il gruppo. AVG ([DISTINCT|ALL] n) media, ignora i valori.
Creazione e manipolazione tabelle. TABELLE una tabella può essere creata in qualsiasi momento,anche quando gli utenti stanno usando il database la struttura.
Constraints.
Componenti dell’architettura Oracle
SQL per la definizione di basi di dati SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di.
Palermo, may 2010 F.Doumaz, S.Vinci (INGV-CNT- Gruppo di telerilevamento)
1 © 2013 Cobra Italia SpA All rights reserved Cobra group website Gennaio 2013.
Sistemi di elaborazione dellinformazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 7 -Instradamento dinamico Ernesto Damiani Lezione 1 – Richiami.
Filtered Index and Statistics Filtered Indexes Sergio Govoni
Primi passi con Windows: Gestione del Desktop Barra Applicazioni Menu Avvio ISTITUTO COMPRENSIVO N.7 - VIA VIVALDI - IMOLA Via Vivaldi, Imola.
Sito IntergruppoParma.it Nuovo Intergruppo Parma.
Moduli o Form I Moduli permettono all'utente di immettere informazioni...
ISOIVA (LOCALE) TO ISOIVA (WEB) RIPARTIZIONE INFORMATICA UFFICIO APPLICATIVI AMMINISTRATIVI 13/04/2011 UNIVERSITÀ DEGLI STUDI DI FERRARA 1.
Attribution-NonCommercial-ShareAlike Le novità
1 6. Astronomia Gamma Corso Astrofisica delle particelle Prof. Maurizio Spurio Università di Bologna. A.a. 2011/12.
24 aprile 2002 Avvisi: Risultati 1 o Esonero: (entro) lunedi 27 disponibili nella pag. WEB, ma anche esposti nella bacheca fuori dal corridoio 2 o dente,
Personalizzazione e porting delle procedure esterne connesse ad Aleph Il caricamento degli utenti della circolazione da files esterni Modifiche introdotte.
Installazione di Drupal su Linux (sistemista) Installazione step-by-step e note.
21 marzo 2002 (ri-)Avvisi: Giovedi 28 marzo la lezione e sospesa. Nuovo indirizzo di Spedire messaggi e esercizi solo.
sql: esempi di linguaggio sql nell'implementazione mysql
VB.NET Sviluppo Applicazioni Desktop
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
SUBQUERY Chi ha un salario maggiore di quello di Abel? Occorre scomporre la query in due sotto problemi: MAIN : quali impiegati hanno un salario maggiore.
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 4 - Dicembre Utenti e privilegi del database - 1 Root è lutente amministratore predefinito, ma.
Introduzione al linguaggio C. Cos’e’ il C? Il C e’ un linguaggio ad alto livello Un compilatore C prende in input un file contenente codice sorgente C.
1 Basi di dati (Sistemi Informativi) Scuola di Dottorato in Scienze Veterinarie per la Salute Animale e la Sicurezza Alimentare a.a Ing. Mauro.
Analysis and Development of Functions in REST Logic: Application to the «DataView» Web App UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA DIPARTIMENTO.
Collection & Generics in Java
Introduction to automatic ABMs documentation Keywords: Doxygen ODD protocol MASON documentation Simone Romano.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 - Protocolli del Web Ernesto Damiani Lezione 3 – Esempi HTTP.
CREAZIONE UTENTE SU DATATOP. CREAZIONE UTENTE Andate su //datatop.di.unipi.it/webdb Login come utente: webdb password: ****** Administer -> User Manager.
SQL Developer Lanciare sqldeveloper (alias sul desktop) / c:\Oracle\sqldeveloper Associare tutti i tipi di file, se volete Tasto destro sulla spina “connection”
Prof. G.PassianteCorso di Economia dell’innovazione - A.A. 2012/13 The Process Handbook: A Tool for Business Process Redesign.
Dynamic SQL.
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
1 Acceleratori e Reattori Nucleari Saverio Altieri Dipartimento di Fisica Università degli Studi - Pavia
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
MySQL Database Management System
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Studente : Andrea Cassarà Classe: 5AII A.S. 2014/2015 Link Sito
Transcript della presentazione:

Gestione automatica della pixelizzazione del cielo per DB MySQL: HEALPix e HTM Luciano Nicastro e Giorgio Calderone

Sommario MCS Tassellizzazione della sfera e indicizzazione HTM e HEALPix Database relazionale: MySQL DIF – MCS: Situazione attuale Cosa c'è da fare nel futuro prossimo e non Demo in ambiente IDL (Le esigenze degli utenti) Si rimanda ai seminari di G. Calderone per gli aspetti riguardanti l'uso dei DB. ross.iasfbo.inaf.it/seminariDB/

MCS: My Customizable Server ross.iasfbo.inaf.it/MCS/ A flexible resource for astronomical projects A cosa serve: Applicazioni multi-thread Applicazioni di rete (via TCP) Applicazioni per database (MySQL) Information servers Accesso a tabelle VOTable e FITS Inoltre: Interfacce client verso (quasi) tutti i linguaggi Sistema di privilegi a livello di record per tabelle MySQL MyRO Sistema di indicizzazione automatico di tabelle con coordinate sferiche DIF

DBMS: Data Base Management System I DBMS rendono più semplice: Archiviazione Accesso Condivisione Protezione dei dati (di qualsiasi tipo!) Ma richiedono: Imparare ad usare un nuovo linguaggio (SQL) Va seguita la logica dei database

MySQL The world's most popular open source database Open Source Alte performance, affidabilità e facilità di installazione e uso Funziona su più di 20 piattaforme incluso Linux, Windows, OS/X, HP-UX, AIX, Netware... Flessibile e configurabile grazie a Views, Triggers, Plug- ins, etc. Database scelto per la nuova generazione di applicazioni costruita sulla cosiddetta LAMP stack (Linux, Apache, MySQL, PHP / Perl / Python)

Indicizzare tabelle di DB 1-d Col 1 Col 2... Col N v v v N d Col 1 Col 2... Col N RA Dec v α 1 1 v α v N α N N ColonneRigheCatalogo ,992,970Infrarosso: 2MASS ,711Raggi X: 1XMM 301,045,913,669Ottico: USNO-B USNO-B and 2MASS distribuiti come file separati, ognuno copre 0.1° in declinazione, ordinati in RA nella fetta (indici non univoci).

Indicizzare tabelle di DB B-tree: In computer science, a B-tree is a tree data structure that keeps data sorted and allows searches, insertions, and deletions in logarithmic amortized time. It is most commonly used in databases and filesystems. R-tree: R-trees are tree data structures that are similar to B-trees, but are used for spatial access methods i.e., for indexing multi-dimensional information; for example, the (X, Y) coordinates of geographical data. A common real-world usage for an R-tree might be: "Find all museums within 2 miles of my current location".

Indicizzare tabelle di DB Possibili indicizzazione di una tabella 2-d (3-d,...): Affettamento a piacere della sfera – no indice Indicizzare (B-tree) su un solo asse Usare una funzione che mappa 2-d 1-d quindi B-tree Usare un vero indice spaziale come l' R-tree La scelta più efficace è portare una tabella con coordinate sferiche (2-d) ad essere trattabile dal DB server come una tabella ad una sola dimensione così da poter essere indicizzabile con un normale schema B-tree. Varie funzioni di riempimento (tassellizzazione) della sfera sono state proposte (e usate) nel passato, ma per l'uso Astronomico vengono usate HTM ed HEALPix.

HTM: Hierarchical Triangular Mesh HTM: Inventato alla Johns Hopkins University – ora usato da vari progetti. Il numero totale di pixel (in questo caso trixels) in una mappa è governata dal parametro depth: d (depth): [0, 25] N pix = 8 × 4 d ID range : [N pix, 2 × N pix 1] Res. Max: 9.0 × pix 7.7'' × (24 cm on Earth)

HEALPix: Hierarchical Equal Area isoLatitude Pixelization HEALPix: healpix.jpl.nasa.gov Inventato ad ESO per COBE. Ora usato da WMAP, Planck, etc. Il numero totale di pixel in una mappa è governata dal parametro order: k (order): [0, 29] N side = 2 k N pix = 12 × N 2 side ID range : [0, N pix – 1]Ω pix = π / (3 × N 2 side ) Res. Max: 3.46 × pix 3.93'' × (1.2 cm on Earth)

DIF: Dynamyc Indexing Facility DIF è un set di tools all'interno di MCS che permette di indicizzare automaticamente una tabella con coordinate sferiche in modo trasparente all'utente usando sia HTM che HEALPix. Requisiti di sistema: MCS installato con opzione –enable-dif MySQL versione >= Perl con DBD::mysql Per i nostri demo inoltre: IDL versione >= 5.6 con libreria HEALPix (>= 2.0)

DIF: installazione Installando MCS dare -- enable-dif (oppure --enable-all ) allo script configure. Dare configure --help per tutte le opzioni (è richiesto il modulo Perl DBD::mysql). D opo il make e make install dare il comando dif –install. Con dif --help si possono avere tutte le opzioni. Per indicizzare una tabella esequire un comando tipo: dif --index-htm MyDBname MyCatname 6 RAcs/3.6E5 DECcs/3.6E5 6 è il parametro di profondità (N pix = 8 × 4 6 = 32768). Le due espressioni seguenti servono a passare a gradi. Per indicizzare una tabella sia con HTM che con HEALPix esequire un comando tipo: dif --index-both MyDBname MyCatname RAcs/3.6E5 DECcs/3.6E5 8 è l'order HEALPix (N pix = 12 × (2 8 ) 2 = ) e 0 indica schema RING (1 per NESTED).

DIF: installazione Notare: La profondità della pixelizzazione (numero di pixel in cui viene divisa la sfera) dipende dal contenuto della tabella. Per cataloghi di oggetti la nostra esperienza suggerisce che si possono avere (in media) alcune migliaia di oggetti per pixel con performance ottime. Nel caso di cross-match tra cataloghi questo numero andrebbe ridotto di almeno un'ordine di grandezza. Prevediamo di effettuare dei benchmark in futuro. Funzioni MySQL create: DIF.getHTMDepth(db, tab) DIF.getHEALPOrder(db, tab) DIF.getHEALPNested(db, tab) DIF.getRa(db, tab) DIF.getDec(db, tab)... (TBC)... DIF_HTMLookup(d, Ra, Dec) DIF_HEALPLookup(s, k, Ra, Dec) DIF_HTMCircle(Ra, Dec, R) DIF_HTMRect(Ra, Dec, S1, S2) DIF_HTMRectV(Ra1,Dec1,...) DIF_HEALPCircle(Ra, Dec, R) DIF_Sphedist(Ra1,Dec1,Ra2,Dec2)

DIF: sessione MySQL interattiva % mysql --local-infile=1 -u root -p DIF Enter password: mysql> show tables; | Tables_in_DIF | | dif | | tbl | mysql> describe dif; | Field | Type | Null | Key | Default | Extra | | id | bigint(20) | YES | | NULL | | | full | tinyint(1) | YES | | NULL | | mysql> select count(*) from dif; | count(*) | | 0 |

DIF: sessione MySQL interattiva mysql> describe tbl; | Field | Type | Null | Key | Default | Extra | | db | char(50) | NO | PRI | | | | name | char(50) | NO | PRI | | | | HTMDepth | int(11) | YES | | NULL | | | HEALPNested | int(11) | YES | | NULL | | | HEALPOrder | int(11) | YES | | NULL | | | Ra_field | char(100) | YES | | NULL | | | Dec_field | char(100) | YES | | NULL | | mysql> select * from tbl; | db | name | HTM | HEALP | HEALP | Ra_field | Dec_field | | | | Depth | Nested| Order | | | | RossCats | GSC_22 | 6 | 0 | 8 | RAcs/3.6e5| DECcs/3.6e5| | RossCats | UCAC_2 | 6 | 0 | 6 | RAcs/3.6e5| DECcs/3.6e5| | RossCats | ASCC_25 | 6 | 0 | 6 | RAcs/3.6e5| DECcs/3.6e5|

DIF: demo::Messier mysql> DROP TABLE IF EXISTS Messier; mysql> CREATE TABLE Messier ( M INT NOT NULL, Type CHAR(2) DEFAULT '**', Const CHAR(3) DEFAULT '***', Mag FLOAT, Ra FLOAT, Decl FLOAT, Dist CHAR(20), App_size CHAR(20) DEFAULT 'unknown', PRIMARY KEY (M)); mysql> LOAD DATA LOCAL INFILE './messier' INTO TABLE Messier; mysql> select count(*) from Messier; | count(*) | | 110 | mysql> SELECT * FROM Messier;...

DIF: demo::Messier % dif –index-htm test Messier 6 RA * 15E0 Decl mysql> use test; mysql> describe Messier; | Field | Type | Null | Key | Default | Extra| | M | int(11) | NO | PRI | | | | Type | char(2) | YES | MUL | ** | | | Const | char(3) | YES | | *** | | | Mag | float | YES | | NULL | | | Ra | float | YES | | NULL | | | Decl | float | YES | | NULL | | | Dist | char(20) | YES | | NULL | | | App_size | char(20) | YES | | unknown | | | htmID | smallint(5)unsigned | YES | MUL | NULL | |

DIF: demo::Messier mysql> SELECT * FROM Messier_htm WHERE DIF_HTMCircle(0.7*15, 41.3, 30); | M | Type | Const | Mag | Ra | Decl | Dist | App_size | htmID| | 31 | GX | And | 4.8 | | | 2.2 Mly | 192.4'x62.2' | 64538| | 32 | GX | And | 8.7 | | | 2.2 Mly | 8.7'x6.4' | 64539| | 110 | GX | And | 9.4 | | | 2.2 Mly | 21.9'x10.9' | 64571| mysql> SELECT * FROM Messier_htm WHERE DIF_HTMRect(0.7*15, 41.3, 60);...same result... mysql> SELECT * FROM Messier_htm WHERE DIF_HTMRectV(180.,28, 142.5,32, 180.,10, 142.5,6); | M | Type | Const | Mag | Ra | Decl | Dist | App_size | htmID | | 66 | GX | Leo | 8.2 | | | 35 Mly | 9.1'x4.1' | | | 95 | GX | Leo | 10.4 | | | 38 Mly | 7.5'x5.0' | | | 96 | GX | Leo | 9.1 | | | 38 Mly | 7.6'x5.2' | | | 65 | GX | Leo | 9.3 | | | 35 Mly | 8'x1.5' | | | 105 | GC | Leo | 9.2 | | | 38 Mly | 5.4'x4.8' | | Selezione circolare intorno a M31 e rettangolo in Leo:

DIF: IDL_demo::ASCC / UCAC / GSC ASCC-2.5: catalogo astro-fotometrico (B, V) di 2.5 M-oggetti UCAC-2: catalogo astrometrico (mag A in [V,R]) di 48.3 M-oggetti GSC-2.2: catalogo fotometrico (I, R, B, V) di 455 M-oggetti Cataloghi custom utilizzati:

DIF: IDL_demo::ASCC / UCAC / GSC Demo con query che legge sempre (e solo) la colonna con i pixel ID: mcshpdemo1.pro Keywords: Order= ordine della mappa (in [0,29]) TABName= nome base della tabella... Demo con query che produce sempre 2 colonne, quella con i pixel ID + una qualsiasi altra (anche combinazione): mcshpdemo2.pro Keywords: Order= ordine della mappa (in [0,29]) TABName= nome base della tabella... Uso delle librerie utente mcs_usrlib.pro e mcs_healplib.pro (libreria HEALPix installata): Librerie e programmi scaricabili da ross.iasfbo.inaf.it/MCS/

DIF: IDL_demo::ASCC / UCAC / GSC ; UCAC2 objects density 4 deg around (0, 0) IDL> mcshpdemo1, order=6, $ Query = 'SELECT healpID FROM UCAC_2_healp WHERE DIF_HEALPCircle(0, 0, 240)'... ; UCAC2 Average A color 4 deg around (0, 0) IDL> mcshpdemo2, order=6, $ Query = 'SELECT healpID,Amm FROM UCAC_2_healp WHERE DIF_HEALPCircle(0, 0, 240)'... ; ASCC2.5 full-sky objects density IDL> mcshpdemo1, tabname='ASCC_25', $ Query='select healpID from ASCC_25', col=5 ; ASCC2.5 average B-V color per pixel IDL> mcshpdemo2, order=6, $ Query='select healpID,(Bcm-Vcm)/1e2 AS BmV from ASCC_25 where Bcm>0 and Vcm>0', outfile='ascc_b-v.fits' ; Replot in Galactic coords IDL> mollview, 'ascc_b-v.fits', coord=['c','g'], grat=[30,30], $ title='ASCC B-V' Plot 1Plot 2Plot 3Plot 4

DIF: IDL_demo::ASCC / UCAC / GSC ; Downgrade from Nside 64 to 16 and plot the boundaries of Healpix pixels IDL> loaddata_healpix, 'ascc_b-v.fits', dummy, map64 IDL> ud_grade, map64, map16, nside=16, order_in='RING' IDL> mollview, map16, /ONLINE, coord=['c','g'], $ title='ASCC B-V', hbound=16 ; All the objects falling into a circle of radius 4 deg ; (use HTMCircle) IDL> mcshpdemo1, tabname='UCAC_2', /gnomic, $ Query='SELECT healpID, Amm FROM UCAC_2_htm WHERE DIF_HTMCircle(0,0,240)', $ OUTLINE={coord:'c', ra:[-4,4,4,-4,-4], dec:[-4,-4,4,4,-4], line:2} ; All the objects falling into a square of side 8 deg ; (use HTMRect) IDL> mcshpdemo1, tabname='UCAC_2', /gnomic, $ Query='SELECT healpID FROM UCAC_2_htm WHERE DIF_HTMRect(0,0,480,480)', $ OUTLINE={coord:'c', ra:[-4,4,4,-4,-4], dec:[-4,-4,4,4,-4], line:2} Plot 1Plot 2

DIF: IDL_demo::ASCC / UCAC / GSC ; UCAC 2 fulll sky density IDL> mcshpdemo1, tabname='UCAC_2', outfile='ucac2_cover_k8.fits', col=5, $ query='select healpID from UCAC_2 ; PNG for UCAC 2 objects density - galactic, mollview IDL> mollview, 'ucac2_cover_k8.fits',coord=['C','G'], /grat, $ col=5, title='UCAC 2 - objects density', $ png='ucac2_density_gal.png' Plot 1

DIF: IDL_demo::ASCC / UCAC / GSC ; SMC IDL> hprectsel, tabname='GSC_22',rect=[13.175, ,500,300],$ out='gsc22_smc_k8.fits IDL> loaddata_healpix, 'gsc22_smc_k8.fits', dummy, map IDL> map2 = map*1. IDL> map2[where(map eq 0)] = !values.f_nan & map = 0 IDL> gnomview, map2, /ONLINE, rot=[13.175, ], /grat, $ coord=['c','c'], col=5, title='GSC SMC region', $ png='gsc22_smc_k8.png', unit='Nr of entries IDL> mcshpdemo1, order=10, out='gsc22_smc_k10.fits', $ query='SELECT DIF_HEALPLookup(0,10,RAcs/3.6e5,DECcs/3.6e5) FROM GSC_22_htm WHERE DIF_HTMRect(13.175, ,500,300)' IDL> loaddata_healpix, 'gsc22_smc_k10.fits', dummy, map IDL> map2 = map*1. IDL> map2[where(map eq 0)] = !values.f_nan & map = 0 IDL> gnomview, map2, /ONLINE, rot=[13.175, ], /grat, $ coord=['c','c'], col=5, title='GSC SMC region', $ png='gsc22_smc_k10.png', unit='Nr of entries IDL> mcshpdemo2, order=10, out='gsc22_smc_k10_b-r.fits', $ query='SELECT DIF_HEALPLookup(0,10,RAcs/3.6e5,DECcs/3.6e5), (Bcm-Rcm)/1e2 FROM GSC_22_htm WHERE DIF_HTMRect(13.175,72.833,500,300)and Rcm>0 and Bcm>0' Plot 1Plot 2

Possiamo passare a Linux per i demo in tempo reale ross.iasfbo.inaf.it/MCS/

mcshpdemo1_def

mcshpdemo2_def

mcshpdemo1: ASCC2.5 density

mcshpdemo2: ASCC2.5 B-V K = 6 K = 4

mcshpdemo1: UCAC2 CircleSquare

mcshpdemo1: UCAC2 density full sky Ortographic Equatorial Mollview Galactic

mcshpdemo1: GSC2.2 SMC K = 8K = 10

mcshpdemo1: GSC2.2 SMC B - R