[PYTHON] Comment afficher plusieurs images d'une galaxie en tuiles

environnement

Google Colab (Python:3.6.9, astroquery:0.4)

Flux global

--Enregistrer le catalogue astronomique (correspond au fichier) de skyview --Créez et enregistrez une image de galaxie basée sur le fichier fit

code

Enregistrer le fichier ajustements

Tout d'abord, récupérez les noms célestes et leurs numéros répertoriés dans le catalogue spécifié par Vizier.



from astroquery.vizier import Vizier
v=Vizier(catalog="J/ApJS/80/531/gxfluxes",columns=["Name","logLx","Bmag","dist","type"],row_limit=-1)
data=v.query_constraints()
sname=data[0]["Name"]
namelist=[]
for one in sname:
  name=one.strip().split()[0]
  name=one.replace("N","NGC").replace("I","IC")
  namelist.append(name)
olist=["HRI","DSS"]

Dans ce cas, len (namelist) = 448, donc nous pouvons voir qu'il y a 448 corps célestes. Enregistrez les fichiers d'ajustement de ces corps célestes dans l'ordre.

def save(p,name,obs): # save file into fits 
    for onep,oneo in zip(p,obs):
        onep.writeto(name+"_"+oneo+".fits",overwrite=True)
from astroquery.skyview import SkyView
path_fits="/content/drive/My Drive/datastore/fits/"
num=int(input("Times of try (for <=448) : "))
filename=[]


for i in range(num):
  name=namelist[i]
  try:
    paths=SkyView.get_images(position=name,survey=olist)
    save(paths,path_fits+name,olist)
    filename.append(name)
    print("Saved  {}".format(name))
  except:
    print("Not found {}".format(name))

Lisez le fichier fit dans le répertoire. Étant donné que le fichier fit contient des informations sur les tableaux ndarray 300x300, transformez-les une fois en une matrice 1x90000. Faites de même pour les autres fichiers fit et ajoutez les résultats au même ndarray.

#Données d'image unidimensionnelles du fichier fit dans le répertoire
#Stockez les données d'image dans chaque ligne de données dans un tableau à deux dimensions

path_fits=glob.glob("/content/drive/My Drive/datastore/fits/*_DSS.fits")

N=100
#N=len(path_fits)
h=300
w=300


data = np.empty(h*w*N).reshape(N, h*w)
img_data=np.empty(h*w*N)
for i in range(N):
  dsshdu=fits.open(path_fits[i])[0]
  dsswcs=WCS(dsshdu.header)
  dssdata=dsshdu.data
  img_data=np.array(dssdata)
  data[i] = np.array(dssdata).flatten()
data.shape

Remodelez à nouveau les données d'image qui ont été aplaties dans une matrice 300 x 300. Tracez-le un par un dans la direction de l'axe = 0.

data_reshaped=data.reshape(N,h,w)

f=plt.figure(figsize=(15,15))
f.subplots_adjust(left=0,right=1,bottom=0,top=1,hspace=0.05,wspace=0.05)

for i in range(N):
  ax=f.add_subplot(10, 10, i+1, xticks=[], yticks=[])
  ax.imshow(data_reshaped[i], interpolation="bilinear")

plt.show()

résultat

2020-06-06.png

Les références

[Pour les super débutants] Essayez d'implémenter l'analyse en composantes principales (ACP) des images avec python.

Recommended Posts

Comment afficher plusieurs images d'une galaxie en tuiles
[Google Colab] Je souhaite afficher plusieurs images côte à côte dans une vignette
Comment collecter des images en Python
Comment afficher une colonne de fichiers spécifiée sous Linux (awk)
Comment supprimer l'erreur d'affichage dans matplotlib
Comment afficher la table quatre-vingt-dix-neuf en python
Comment afficher Hello World en python
Comment afficher les images dans l'administration de Django
Comment dessiner une image OpenCV avec Pygame
Comment changer plusieurs colonnes de csv dans Pandas (Unixtime-> Japan Time)
Comprendre comment afficher des images sur Jupyter (utilisation de imshow / matplotlib d'OpenCV)
Comment suivre le travail avec Powershell
Résumé de la façon d'importer des fichiers dans Python 3
Je souhaite afficher plusieurs images avec matplotlib.
Résumé de l'utilisation de MNIST avec Python
Comment afficher des images en continu avec matplotlib Memo
Comment afficher des vidéos en ligne dans Google Colab
[Java] Comment basculer entre plusieurs versions de Java
Comment obtenir plusieurs objets de modèle au hasard dans Django
Comment obtenir le nombre de chiffres en Python
Comment écrire une concaténation de chaînes sur plusieurs lignes en Python
Comment afficher DataFrame sous forme de tableau dans Markdown
Comment récupérer plusieurs tableaux à l'aide de slice en python.
Résumé de la façon de partager l'état avec plusieurs fonctions
Comment afficher la date de modification d'un fichier en langage C jusqu'à nanosecondes
Placement optimal de plusieurs images
Comment développer en Python
Comment découper un bloc de plusieurs tableaux à partir d'un multiple en Python
Comment définir plusieurs variables dans une instruction Python for
Comment développer dans un environnement virtuel Python [Memo]
Comment afficher une liste des versions installables avec pyenv
Comparaison de l'utilisation des fonctions d'ordre supérieur dans Python 2 et 3
Comment augmenter le nombre d'images de jeux de données d'apprentissage automatique
Comment obtenir une liste d'exceptions intégrées pour python
Résumé de l'écriture des fichiers .proto utilisés dans gRPC
Comment obtenir un aperçu de vos données dans Pandas
Comment afficher le maillage régional du Government Statistics Office (eStat) dans un navigateur Web
[Super facile! ] Comment afficher le contenu des dictionnaires et des listes incluant le japonais en Python
Comment traiter les images de caméra avec Teams et Zoom Volume de traitement dans le style d'animation
Manipulation des pixels d'image en Python
Comment gérer une session dans SQLAlchemy
[Rails] Comment afficher Google Map
Comment déterminer l'existence d'un élément sélénium en Python
Comment implémenter du code Java en arrière-plan de Red Hat (Linux ONE)
[Concaténation d'images] Réorganiser les images en mosaïques
Comment utiliser les classes dans Theano
Comment écrire sobrement avec des pandas
Comment changer la couleur du seul bouton pressé avec Tkinter
Comment afficher des formules en latex lors de l'utilisation de Sympy (> = 1.4) dans Google Colaboratory
Comment mettre à jour Spyder dans Anaconda
Comment utiliser SQLite en Python
Résumé de l'utilisation de pyenv-virtualenv
Affichage de la forme d'onde audio en Python
Comment convertir 0,5 en 1056964608 en un seul coup
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
[TensorFlow 2] Comment vérifier le contenu de Tensor en mode graphique
Comment refléter CSS dans Django