Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| en:praktikum:photometrie_python [2026/04/22 12:09] – [Cross correlation with the extracted data] rhainich | en:praktikum:photometrie_python [2026/09/09 09:04] (current) – [World Coordinate System] rhainich | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== PlayGround ====== | ||
| + | |||
| ====== N2 - Photometry of open star clusters ====== | ====== N2 - Photometry of open star clusters ====== | ||
| Line 19: | Line 21: | ||
| ===== Observation ===== | ===== Observation ===== | ||
| - | Night observations at the OST of the University of Potsdam (alternatively also at the 70cm telescope of the AIP) are required. Please refer to the checklist for night observations for preparation. | + | Night observations at the OST of the University of Potsdam (alternatively also at the 70cm telescope of the AIP) are required. Please refer to the checklist for night observations for preparation. |
| - | For the data reduction, flatfields and darks must be taken in addition to the actual images of the star clusters. Bias images (with zero exposure time) are not necessary, if for each set of star cluster images and flatfields also darks with the same exposure times are taken. At the OST, the flatfields can be taken with a flat field panel after observing the star clusters. If observing at the AIP, it is recommended to take the flatfields already at dusk (or against a white evenly illuminated wall). In this case, bias images are also required and should be taken with the cover closed. In any case, in absolute darkness and with the covers closed, the dark frames should be acquired. To minimize noise, each set of darks and flats should consist of at least 30 individual exposures. | + | For the data reduction, flatfields and darks must be taken in addition to the actual images of the star clusters. Bias images (with zero exposure time) are not necessary, if for each set of star cluster images and flatfields also darks with the same exposure times are taken. At the OST, the flatfields can be taken with a flat field panel after observing the star clusters. If observing at the AIP, it is recommended to take the flatfields already at dusk (or against a white evenly illuminated wall). In this case, bias images are also required and should be taken with the cover closed. In any case, in absolute darkness and with the covers closed, the dark frames should be acquired. To minimize noise, each set of darks and flats should consist of at least 30 individual exposures. |
| - | After darkness has fallen, the images of the star clusters are taken. To get a sufficient number of counts also from fainter stars, the exposures should be long enough. Depending on the camera and the observed object the time span for single images can be between 20 seconds and several minutes. Especially if brighter objects are in the field of view or if the accuracy of the tracking is insufficient, | + | After darkness has fallen, the images of the star clusters are taken. To get a sufficient number of counts also from fainter stars, the exposures should be long enough. Depending on the camera and the observed object the time span for single images can be between 20 seconds and several minutes. Especially if brighter objects are in the field of view or if the accuracy of the tracking is insufficient, |
| ===== Data reduction ===== | ===== Data reduction ===== | ||
| Line 32: | Line 34: | ||
| The first thing to do is to log in to the [[en: | The first thing to do is to log in to the [[en: | ||
| - | ds9 filename.fit | + | ds9 filename.fit |
| opens the image '' | opens the image '' | ||
| mirroring etc.) can be accessed via buttons. The coordinates of the current cursor position are displayed in the upper left corner. It is also possible to open several images at once (buttons '' | mirroring etc.) can be accessed via buttons. The coordinates of the current cursor position are displayed in the upper left corner. It is also possible to open several images at once (buttons '' | ||
| - | Alternatively, | + | Alternatively, |
| ds9 *.fit | ds9 *.fit | ||
| (but this is not suitable for a large number of files). In //ds9// the frames can be viewed as above or each frame can be viewed individually one after the other (button '' | (but this is not suitable for a large number of files). In //ds9// the frames can be viewed as above or each frame can be viewed individually one after the other (button '' | ||
| - | + | ||
| The **usable** frames are to be selected for further processing. For example, the stars should be seen as round discs. Images with oval-shaped stars are not to be used. | The **usable** frames are to be selected for further processing. For example, the stars should be seen as round discs. Images with oval-shaped stars are not to be used. | ||
| Line 54: | Line 56: | ||
| If you want to reconnect, you can do so by typing | If you want to reconnect, you can do so by typing | ||
| - | | + | |
| - | This is also necessary if you reconnect to columba, e.g. after a break, and want to continue the data analysis. | + | This is also necessary if you reconnect to columba, e.g. after a break, and want to continue the data analysis. |
| The OST photometry pipeline can then be installed in the terminal using //pip// as follows | The OST photometry pipeline can then be installed in the terminal using //pip// as follows | ||
| Line 62: | Line 64: | ||
| pip install ost_photometry | pip install ost_photometry | ||
| - | All necessary dependencies are also installed in this way. | + | All necessary dependencies are also installed in this way. |
| ==== Reduction pipeline: darkframes, flatfields, and image stacking ==== | ==== Reduction pipeline: darkframes, flatfields, and image stacking ==== | ||
| Line 69: | Line 71: | ||
| Copy the //Python// script '' | Copy the //Python// script '' | ||
| - | | + | |
| /bias/ | /bias/ | ||
| /darks/ | /darks/ | ||
| /flats/ | /flats/ | ||
| /images/ | /images/ | ||
| - | | + | |
| - | The //Python// script automatically detects the filters and exposure times used. Based on this, it arranges and classifies the files automatically without any further interaction. If you are sure that all '' | + | The //Python// script automatically detects the filters and exposure times used. Based on this, it arranges and classifies the files automatically without any further interaction. If you are sure that all '' |
| /* | /* | ||
| Line 103: | Line 105: | ||
| Once the path information and the name of the star cluster have been specified, the script can be executed with | Once the path information and the name of the star cluster have been specified, the script can be executed with | ||
| - | | + | |
| - | + | ||
| The results are saved in a new subdirectory called '' | The results are saved in a new subdirectory called '' | ||
| Line 118: | Line 120: | ||
| <code Python> | <code Python> | ||
| - | import os | ||
| - | |||
| import numpy as np | import numpy as np | ||
| Line 128: | Line 128: | ||
| from astroquery.vizier import Vizier | from astroquery.vizier import Vizier | ||
| - | from ost_photometry import checks | ||
| from ost_photometry.analyze.extraction import main_extract | from ost_photometry.analyze.extraction import main_extract | ||
| + | from ost_photometry.output_layout import diagnostics_dir | ||
| from ost_photometry.analyze.plots import ( | from ost_photometry.analyze.plots import ( | ||
| + | calibrated_color, | ||
| + | catalog_fit_residual, | ||
| plot_calibration_color_color_cal_stars, | plot_calibration_color_color_cal_stars, | ||
| plot_combined_separation_histograms, | plot_combined_separation_histograms, | ||
| Line 141: | Line 143: | ||
| ) | ) | ||
| from ost_photometry.utilities import ( | from ost_photometry.utilities import ( | ||
| - | | + | |
| Image, | Image, | ||
| ) | ) | ||
| Line 153: | Line 155: | ||
| warnings.filterwarnings(' | warnings.filterwarnings(' | ||
| </ | </ | ||
| - | + | ||
| The last two lines disable some warnings that unnecessarily clutter the console output. | The last two lines disable some warnings that unnecessarily clutter the console output. | ||
| ==== Defining some variables ==== | ==== Defining some variables ==== | ||
| - | Next, some variables should be defined. These should be at least the name of the cluster ('' | + | Next, some variables should be defined. These should be at least the name of the cluster ('' |
| <code Python> | <code Python> | ||
| Line 171: | Line 173: | ||
| </ | </ | ||
| - | Note: The variable names given here and in the following are only examples and can be replaced by any other name. | + | Note: The variable names given here and in the following are only examples and can be replaced by any other name. |
| Note: If the images are not in a subdirectory of the current directory, the path can also refer to the next higher level by using '' | Note: If the images are not in a subdirectory of the current directory, the path can also refer to the next higher level by using '' | ||
| Line 177: | Line 179: | ||
| ==== Reading in the images ==== | ==== Reading in the images ==== | ||
| - | We open the FIT files with image data by means of the '' | + | We open the FIT files with image data by means of the '' |
| <code Python> | <code Python> | ||
| Line 187: | Line 189: | ||
| ==== World Coordinate System ==== | ==== World Coordinate System ==== | ||
| - | The images created by the OST are usually delivered without a so-called WCS. WCS stands for World Coordinate System and allows to assign sky coordinates to each pixel in the image. In //ds9// these coordinates will be displayed in the coordinates window of //ds9// when pointing with the mouse pointer on certain pixels or objects. This is very helpful if you want to compare the positions of stars in your own image with those in star catalogs. This could be quite helpful for the calibration of the stellar magnitudes later on ;-). | + | The images created by the OST are usually delivered without a so-called WCS. WCS stands for World Coordinate System and allows to assign sky coordinates to each pixel in the image. In //ds9// these coordinates will be displayed in the coordinates window of //ds9// when pointing with the mouse pointer on certain pixels or objects. This is very helpful if you want to compare the positions of stars in your own image with those in star catalogs. This could be quite helpful for the calibration of the stellar magnitudes later on ;-). |
| /* | /* | ||
| Line 198: | Line 200: | ||
| </ | </ | ||
| - | The FOV information will be automatically stored in the '' | + | The FOV information will be automatically stored in the '' |
| - | Afterwards, we | + | Afterwards, we |
| */ | */ | ||
| - | We will use the function '' | + | We will use the function '' |
| <code Python> | <code Python> | ||
| # Find the WCS solution for the images | # Find the WCS solution for the images | ||
| - | find_wcs_astrometry(V_image) | + | find_wcs_astap(V_image) |
| - | find_wcs_astrometry(B_image) | + | find_wcs_astap(B_image) |
| </ | </ | ||
| - | When a WCS solution is found, | + | When a WCS solution is found, |
| WCS solution found :) | WCS solution found :) | ||
| - | + | ||
| is printed in green on the command line. | is printed in green on the command line. | ||
| + | |||
| ==== Localization of the stars ==== | ==== Localization of the stars ==== | ||
| === Finding the stars === | === Finding the stars === | ||
| - | The identification of the stars in the two images is performed using the '' | + | The identification of the stars in the two images is performed using the '' |
| <code Python> | <code Python> | ||
| Line 241: | Line 244: | ||
| In addition to the star coordinates (in pixels), '' | In addition to the star coordinates (in pixels), '' | ||
| + | |||
| === Check identified stars === | === Check identified stars === | ||
| The function '' | The function '' | ||
| + | |||
| + | ++++ Quality Control I: Checking photometric errors | | ||
| + | |||
| + | In addition to the starmap, the quality of the extraction can also be judged from the distribution of magnitude versus photometric error. The OST library provides the function '' | ||
| + | |||
| + | <code Python> | ||
| + | # | ||
| + | extraction_qc = str(diagnostics_dir(out_path, | ||
| + | </ | ||
| + | |||
| + | Then the plot can be created for both filters: | ||
| + | |||
| + | <code Python> | ||
| + | # Plot photometry vs. error | ||
| + | plot_photometry_mag_vs_error(V_image.photometry, | ||
| + | plot_photometry_mag_vs_error(B_image.photometry, | ||
| + | </ | ||
| + | |||
| + | A clear increase of the error towards fainter (larger) magnitudes is normal. Noticeable outliers or a very broad band can, however, also indicate problems with the extraction. | ||
| + | ++++ | ||
| + | |||
| === Preparing the extraction results === | === Preparing the extraction results === | ||
| Line 251: | Line 276: | ||
| # Get table | # Get table | ||
| photo_V = V_image.photometry | photo_V = V_image.photometry | ||
| - | photo_B = B_image.photometry | + | photo_B = B_image.photometry |
| </ | </ | ||
| Line 266: | Line 291: | ||
| === Cross correlation and sorting of results === | === Cross correlation and sorting of results === | ||
| - | Next we have to identified those stars that are present in both filters. This is done using the '' | + | Next we have to identified those stars that are present in both filters. This is done using the '' |
| - | First, we create '' | + | First, we create '' |
| <code Python> | <code Python> | ||
| Line 276: | Line 301: | ||
| </ | </ | ||
| - | These two '' | + | These two '' |
| <code Python> | <code Python> | ||
| Line 283: | Line 308: | ||
| </ | </ | ||
| - | The successfully mapped stars get one entry each in '' | + | The successfully mapped stars get one entry each in '' |
| Before this can happen, however, potential multiple identifications must be sorted out. For example, it is possible that '' | Before this can happen, however, potential multiple identifications must be sorted out. For example, it is possible that '' | ||
| Line 323: | Line 348: | ||
| </ | </ | ||
| - | Note that the magnitudes are determined only to an additive constant as long as no calibration has been performed. | + | Note that the magnitudes are determined only to an additive constant as long as no calibration has been performed. |
| ===== Calibration ===== | ===== Calibration ===== | ||
| Line 349: | Line 374: | ||
| <code Python> | <code Python> | ||
| - | calib_tbl = v.query_region(V_image.coordinates_image_center, | + | calib_tbl = v.query_region(V_image.coordinates_image_center, |
| </ | </ | ||
| Line 355: | Line 380: | ||
| <WRAP center round important 90%> | <WRAP center round important 90%> | ||
| - | **Task:** Restrict the downloaded **APASS** catalog to all objects with '' | + | **Task:** Restrict the downloaded **APASS** catalog to all objects with '' |
| Note: To accomplish this task, it might be helpful to learn a little about [[https:// | Note: To accomplish this task, it might be helpful to learn a little about [[https:// | ||
| Line 380: | Line 405: | ||
| <code Python> | <code Python> | ||
| # | # | ||
| - | ind_fit, ind_lit, | + | ind_fit, ind_lit, |
| coords_objs, | coords_objs, | ||
| coord_calib, | coord_calib, | ||
| Line 387: | Line 412: | ||
| </ | </ | ||
| - | As also described above, the duplicates must now be sorted out: | + | As also described above, the duplicates must now be sorted out: |
| <code Python> | <code Python> | ||
| Line 403: | Line 428: | ||
| </ | </ | ||
| - | In this way, we again obtain index values that we can use to select the calibration stars both from the datasets for the two filters and from the downloaded catalog: | + | In this way, we again obtain index values that we can use to select the calibration stars both from the datasets for the two filters and from the downloaded catalog: |
| <code Python> | <code Python> | ||
| Line 414: | Line 439: | ||
| </ | </ | ||
| - | ++++ Quality Control | + | ++++ Quality Control |
| === Starmap === | === Starmap === | ||
| - | One way to check the validity of the calibration stars is to display them on a starmap (similar to what the '' | + | One way to check the validity of the calibration stars is to display them on a starmap (similar to what the '' |
| <code Python> | <code Python> | ||
| Line 434: | Line 459: | ||
| <code Python> | <code Python> | ||
| tbl_xy_cali_all = Table( | tbl_xy_cali_all = Table( | ||
| - | names=[' | + | names=[' |
| data=[np.arange(0, | data=[np.arange(0, | ||
| ) | ) | ||
| Line 446: | Line 471: | ||
| tbl_xy_cali_s = Table( | tbl_xy_cali_s = Table( | ||
| - | names=[' | + | names=[' |
| data=[np.arange(0, | data=[np.arange(0, | ||
| ) | ) | ||
| Line 469: | Line 494: | ||
| tbl_xy_cali_correlated = Table( | tbl_xy_cali_correlated = Table( | ||
| - | names=[' | + | names=[' |
| data=[np.arange(0, | data=[np.arange(0, | ||
| ) | ) | ||
| Line 520: | Line 545: | ||
| plt.savefig(filename) | plt.savefig(filename) | ||
| </ | </ | ||
| - | + | ||
| Here, '' | Here, '' | ||
| Line 552: | Line 577: | ||
| # | # | ||
| sep_inter = coords_V[id_V].separation(coords_B[id_B]).arcsec | sep_inter = coords_V[id_V].separation(coords_B[id_B]).arcsec | ||
| + | </ | ||
| + | |||
| + | We place all diagnostic plots in a separate subdirectory, | ||
| + | |||
| + | <code Python> | ||
| + | # | ||
| + | calibration_qc = str(diagnostics_dir(out_path, | ||
| </ | </ | ||
| Line 561: | Line 593: | ||
| | | ||
| | | ||
| - | out_path, | + | calibration_qc, |
| ' | ' | ||
| | | ||
| Line 587: | Line 619: | ||
| photo_B_sort[' | photo_B_sort[' | ||
| </ | </ | ||
| + | |||
| + | |||
| + | ++++ Quality Control III: Plot the instrumental magnitudes against the catalogue magnitudes and the zero-point deviations | | ||
| + | |||
| + | In order to assess the quality of the magnitude calibration, | ||
| + | |||
| + | <code Python> | ||
| + | m_inst_v = np.asarray(photo_V_sort_calib[' | ||
| + | m_inst_b = np.asarray(photo_B_sort_calib[' | ||
| + | m_cat_v = np.asarray(calib_tbl_sort[' | ||
| + | m_cat_b = np.asarray(calib_tbl_sort[' | ||
| + | err_obs_v = ( | ||
| + | np.asarray(photo_V_sort_calib[' | ||
| + | if ' | ||
| + | else None | ||
| + | ) | ||
| + | err_obs_b = ( | ||
| + | np.asarray(photo_B_sort_calib[' | ||
| + | if ' | ||
| + | else None | ||
| + | ) | ||
| + | err_cat_v = ( | ||
| + | np.asarray(calib_tbl_sort[' | ||
| + | if ' | ||
| + | else None | ||
| + | ) | ||
| + | err_cat_b = ( | ||
| + | np.asarray(calib_tbl_sort[' | ||
| + | if ' | ||
| + | else None | ||
| + | ) | ||
| + | m_cal_v = m_inst_v + float(ZP_V) | ||
| + | m_cal_b = m_inst_b + float(ZP_B) | ||
| + | res_v = catalog_fit_residual(m_inst_v, | ||
| + | res_b = catalog_fit_residual(m_inst_b, | ||
| + | </ | ||
| + | |||
| + | We can then use the plots provided in the OST library to produce the necessary quality control figures: | ||
| + | |||
| + | <code Python> | ||
| + | # Plot instrumental vs. catalog magnitudes (V) | ||
| + | plot_instrumental_vs_catalog_magnitudes( | ||
| + | m_cal_v, | ||
| + | m_cat_v, | ||
| + | calibration_qc, | ||
| + | ' | ||
| + | band_label=' | ||
| + | show_one_to_one=True, | ||
| + | x_label=r' | ||
| + | title=' | ||
| + | filename_stem=' | ||
| + | err_obs=err_obs_v, | ||
| + | err_cat=err_cat_v, | ||
| + | residual=res_v, | ||
| + | ) | ||
| + | |||
| + | # Plot instrumental vs. catalog magnitudes (B) | ||
| + | plot_instrumental_vs_catalog_magnitudes( | ||
| + | m_cal_b, | ||
| + | m_cat_b, | ||
| + | calibration_qc, | ||
| + | ' | ||
| + | band_label=' | ||
| + | show_one_to_one=True, | ||
| + | x_label=r' | ||
| + | title=' | ||
| + | filename_stem=' | ||
| + | err_obs=err_obs_b, | ||
| + | err_cat=err_cat_b, | ||
| + | residual=res_b, | ||
| + | ) | ||
| + | |||
| + | # Plot zero point residuals distribution | ||
| + | plot_zeropoint_residual_distribution( | ||
| + | None, | ||
| + | calibration_qc, | ||
| + | ' | ||
| + | residuals_by_band={ | ||
| + | ' | ||
| + | ' | ||
| + | }, | ||
| + | filename_stem=' | ||
| + | ) | ||
| + | |||
| + | # Plot zero point residuals vs. color index | ||
| + | color_lit = m_cat_b - m_cat_v | ||
| + | plot_zeropoint_residual_vs_color( | ||
| + | color_lit, | ||
| + | None, | ||
| + | calibration_qc, | ||
| + | ' | ||
| + | residuals_by_band={ | ||
| + | ' | ||
| + | ' | ||
| + | }, | ||
| + | color_label=' | ||
| + | title=' | ||
| + | filename_stem=' | ||
| + | ) | ||
| + | color_cal = calibrated_color(m_inst_b, | ||
| + | |||
| + | # Plot calibration color vs. color | ||
| + | plot_calibration_color_color_cal_stars( | ||
| + | color_lit, | ||
| + | color_cal, | ||
| + | calibration_qc, | ||
| + | ' | ||
| + | color_label=' | ||
| + | ) | ||
| + | </ | ||
| + | |||
| + | ++++ | ||
| ==== Saving the results ==== | ==== Saving the results ==== | ||
| Line 595: | Line 739: | ||
| # | # | ||
| results = Table() | results = Table() | ||
| - | results[' | + | results[' |
| - | results[' | + | results[' |
| - | results[' | + | results[' |
| - | results[' | + | results[' |
| - | results[' | + | results[' |
| </ | </ | ||
| - | If the new table is filled, //Astropy// allows to save this table very comfortably with the command '' | + | If the new table is filled, //Astropy// allows to save this table very comfortably with the command '' |
| <code Python> | <code Python> | ||
| Line 611: | Line 755: | ||
| ===== Postprocessing ===== | ===== Postprocessing ===== | ||
| - | If you look at the images of the star clusters you will notice that the star clusters usually occupy only a part of the field of view. Mostly this area will be between 30% and 60% of the field of view. So we probably observe beside the star clusters a number of other stars, so called field stars, which actually do not belong to our star cluster. Generally there will also be some stars between us and the star cluster. Since these stars most likely did not form together with the star cluster, these stars will spoil our results concerning the age determination or make them more difficult to interpret. | + | If you look at the images of the star clusters you will notice that the star clusters usually occupy only a part of the field of view. Mostly this area will be between 30% and 60% of the field of view. So we probably observe beside the star clusters a number of other stars, so called field stars, which actually do not belong to our star cluster. Generally there will also be some stars between us and the star cluster. Since these stars most likely did not form together with the star cluster, these stars will spoil our results concerning the age determination or make them more difficult to interpret. |
| <WRAP center round important 90%> | <WRAP center round important 90%> | ||
| **Task:** | **Task:** | ||
| - | Try to limit the selection of stars to the most probable star cluster members. You have two possibilities, | + | Try to limit the selection of stars to the most probable star cluster members. You have two possibilities, |
| - | - Limit the selection of stars to e.g. 10 arc minutes around the central coordinates of the star cluster. | + | - Limit the selection of stars to e.g. 10 arc minutes around the central coordinates of the star cluster. |
| - | - Download the data from the Gaia archive (catalog ID: '' | + | - Download the data from the Gaia archive (catalog ID: '' |
| Note: In any case, it is helpful to create starmaps (as described in the section " | Note: In any case, it is helpful to create starmaps (as described in the section " | ||
| Line 631: | Line 775: | ||
| For the creation of the CMD a //Python// script is available, in which only a few paths and a few further parameters have to be adjusted. This script also offers the possibility to plot isochrones. We will go into this in more detail below. | For the creation of the CMD a //Python// script is available, in which only a few paths and a few further parameters have to be adjusted. This script also offers the possibility to plot isochrones. We will go into this in more detail below. | ||
| - | First you should copy the corresponding script '' | + | First you should copy the corresponding script '' |
| The script '' | The script '' | ||
| - | | + | |
| - | This script creates a PDF file with the apparent CMD. The axes scaling is done automatically. Since this is not always ideal due to outliers, the plot range should be adjusted via the variables '' | + | This script creates a PDF file with the apparent CMD. The axes scaling is done automatically. Since this is not always ideal due to outliers, the plot range should be adjusted via the variables '' |
| <code Python> | <code Python> | ||
| Line 657: | Line 801: | ||
| # -> x and y range to plot (change according to your data) | # -> x and y range to plot (change according to your data) | ||
| # -> The plot range is automatically adjusted, if range is set to "" | # -> The plot range is automatically adjusted, if range is set to "" | ||
| - | # | + | # |
| + | # | ||
| x_Range_apparent=["","" | x_Range_apparent=["","" | ||
| y_Range_apparent=["","" | y_Range_apparent=["","" | ||
| - | # | + | # |
| x_Range_absolute=["","" | x_Range_absolute=["","" | ||
| y_Range_absolute=["","" | y_Range_absolute=["","" | ||
| Line 675: | Line 820: | ||
| $V_{0} = V - A_{V}$ | $V_{0} = V - A_{V}$ | ||
| - | | + | |
| The reddening is mathematically described by the color excess $E_{(B-V)}$, | The reddening is mathematically described by the color excess $E_{(B-V)}$, | ||
| $A_{V} = R_V \cdot E_{(B-V)}$ | $A_{V} = R_V \cdot E_{(B-V)}$ | ||
| - | | ||
| - | In the solar neighborhood $R_V$ usually is set to 3.1 ([[http:// | ||
| - | Finally the apparent magnitudes should be converted into absolute magnitudes, so that later a comparison with isochrons is possible. For this, the corresponding distance modulus or the distance of the star cluster must be looked up in papers (publications) and the corresponding correction must be applied. | + | In the solar neighborhood $R_V$ usually is set to 3.1 ([[http:// |
| + | |||
| + | Finally the apparent magnitudes should be converted into absolute magnitudes, so that later a comparison with isochrons is possible. For this, the corresponding distance modulus or the distance of the star cluster must be looked up in papers (publications) and the corresponding correction must be applied. | ||
| ==== Absolute CMD plot ==== | ==== Absolute CMD plot ==== | ||
| - | After the $E_{(B-V)}$ and the distance or distance modulus for the corresponding star cluster have been figured out, these can be entered at the corresponding variables in the script '' | + | After the $E_{(B-V)}$ and the distance or distance modulus for the corresponding star cluster have been figured out, these can be entered at the corresponding variables in the script '' |
| <code Python> | <code Python> | ||
| Line 700: | Line 845: | ||
| distance = '?' | distance = '?' | ||
| </ | </ | ||
| - | + | ||
| - | Note: In addition to these settings, there are a number of other configuration options, but we will not discuss them further at this point. | + | Note: In addition to these settings, there are a number of other configuration options, but we will not discuss them further at this point. |
| ==== Plot isochrones ==== | ==== Plot isochrones ==== | ||
| Line 708: | Line 853: | ||
| Unfortunately, | Unfortunately, | ||
| - | In the script the selection of the respective " | + | In the script the selection of the respective " |
| - | + | ||
| - | ++++ Do not display isochrones | | + | ++++ Do not display isochrones | |
| - | If no isochrones are to be displayed '' | + | If no isochrones are to be displayed '' |
| - | ++++ | + | ++++ |
| For the [[http:// | For the [[http:// | ||
| - | + | ||
| <code YAML> | <code YAML> | ||
| --- | --- | ||
| # | # | ||
| + | |||
| + | # Pick a grid below (do not comment/ | ||
| + | use: solar_1Gyr | ||
| # Files | # Files | ||
| - | # isochrones: ' | + | grids: |
| - | # isochrones: ' | + | solar_0p2Gyr: |
| - | isochrones: ' | + | |
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| # Type | # Type | ||
| Line 739: | Line 891: | ||
| # | # | ||
| isochrone_column_type: | isochrone_column_type: | ||
| - | ' | + | ' |
| - ' | - ' | ||
| - 0 | - 0 | ||
| - ' | - ' | ||
| - | ' | + | ' |
| - ' | - ' | ||
| - 0 | - 0 | ||
| - ' | - ' | ||
| - | ' | + | ' |
| - ' | - ' | ||
| - 0 | - 0 | ||
| - ' | - ' | ||
| - | ' | + | ' |
| - ' | - ' | ||
| - 0 | - 0 | ||
| - ' | - ' | ||
| - | + | ||
| # ID of the columns in the isochrone data file containing the magnitudes | # ID of the columns in the isochrone data file containing the magnitudes | ||
| # and the age | # and the age | ||
| Line 764: | Line 916: | ||
| ' | ' | ||
| ' | ' | ||
| - | | + | |
| # | # | ||
| isochrone_keyword: | isochrone_keyword: | ||
| Line 773: | Line 925: | ||
| # Plot legend for isochrones? | # Plot legend for isochrones? | ||
| isochrone_legend: | isochrone_legend: | ||
| + | |||
| + | # | ||
| + | isochrone_set: | ||
| + | FeH: 0.0 | ||
| ... | ... | ||
| </ | </ | ||
| - | '' | + | '' |
| **Tip:** Usually there are isochrones from one source in different time resolutions and for different metallicities. These are then usually found in other files or folders. So it may be worthwhile to look in the database and adjust the entry for '' | **Tip:** Usually there are isochrones from one source in different time resolutions and for different metallicities. These are then usually found in other files or folders. So it may be worthwhile to look in the database and adjust the entry for '' | ||
| Line 787: | Line 943: | ||
| A usual report is to be handed in. See the general overview about the required structure and content [[https:// | A usual report is to be handed in. See the general overview about the required structure and content [[https:// | ||
| + | /* | ||
| For this observation, | For this observation, | ||
| + | */ | ||
| - | In the methods | + | In the ' |
| The results part presents the cluster CMDs and describes the observable features in it. | The results part presents the cluster CMDs and describes the observable features in it. | ||