EranOfek / AstroPack

Astronomy & Astrophysics Software Pacakge
Other
16 stars 4 forks source link

scaleSynphot does not recognize ULTRASAT filters at last08e #203

Closed agioffe closed 1 year ago

agioffe commented 1 year ago

at last08e and RC configuration:

sudo last-tool -n enforce last-software --space rc --repo AstroPack matlab

S = AstroSpec.blackBody(2000:11000,3500); Sc = scaleSynphot(S,20,'SDSS','g');

Sc2 = scaleSynphot(S,20,'ULTRASAT','R1'); Index exceeds the number of array elements (0).

Error in AstroSpec/synphot (line 1745) [Mag, FiltFlag, FilterWave(Iname)] = astro.spec.synthetic_phot(Spec, FilterCell{Iname}, [], Args.MagSys,...

Error in AstroSpec/scaleSynphot (line 1798) MagSyn = synphot(Obj, FilterFamily, FilterName, 'MagSys',Args.MagSys, 'Device',Args.Device);

What could be the reason? Some of the filter data are missing? At the local machine (at WIS) on dev1 branch both variants work normally:

clear all S = AstroSpec.blackBody(2000:11000,3500); Sc = scaleSynphot(S,20,'SDSS','g'); Sc2 = scaleSynphot(S,20,'ULTRASAT','R1');

EranOfek commented 1 year ago

Hi,

I suspect that +cats is not installed and therefore, there are no filters available and you can use AstFilter. Please check if +cats is installed.

On Sun, Jul 30, 2023 at 6:02 PM Alexander Krassilchtchikov < @.***> wrote:

at last08e and RC configuration:

sudo last-tool -n enforce last-software --space rc --repo AstroPack matlab

S = AstroSpec.blackBody(2000:11000,3500); Sc = scaleSynphot(S,20,'SDSS','g');

Sc2 = scaleSynphot(S,20,'ULTRASAT','R1'); Index exceeds the number of array elements (0).

Error in AstroSpec/synphot (line 1745) [Mag, FiltFlag, FilterWave(Iname)] = astro.spec.synthetic_phot(Spec, FilterCell{Iname}, [], Args.MagSys,...

Error in AstroSpec/scaleSynphot (line 1798) MagSyn = synphot(Obj, FilterFamily, FilterName, 'MagSys',Args.MagSys, 'Device',Args.Device);

What could be the reason? Some of the filter data are missing? At the local machine (at WIS) on dev1 branch both variants work normally:

clear all S = AstroSpec.blackBody(2000:11000,3500); Sc = scaleSynphot(S,20,'SDSS','g'); Sc2 = scaleSynphot(S,20,'ULTRASAT','R1');

— Reply to this email directly, view it on GitHub https://github.com/EranOfek/AstroPack/issues/203, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABJUQ4OE2KLZGWVAUPPWDOLXSZZPTANCNFSM6AAAAAA25H3TGI . You are receiving this because you were assigned.Message ID: @.***>

agioffe commented 1 year ago

I've checked it first of all. There is a ~/matlab/data/+cats directory and the +filter directory in it, and the appropriate .mat and .m filter files inside like at the local machine. This is why I was puzzled and raised this issue..

EranOfek commented 1 year ago

on this machine, please try to read some filters: R=AstFilter.get('SDSS','g') is this working?

next try: R=AstFilter('ULTRASAT','R1') is this working?

If the second command doesn't work than the version on this computer is not up to date. This is not important, because LAST computers doesn't care about ULTRASAT filters.

agioffe commented 1 year ago

Yes, there is a problem with ULTRASAT filters here. How could I repair it?

R=AstFilter.get('SDSS','g')

R =

AstFilter with properties:

         family: 'SDSS'
           band: 'g'
              T: [68x2 double]
         Tunits: []
             nT: [68x2 double]
         min_wl: 3805
         max_wl: 5480
         eff_wl: 4718.2
       pivot_wl: 4669.3
pivot_wl_photon: 4701.9
     half_width: 635.19
           fwhm: 1250
       comments: []
         source: []
       UserData: []

R=AstFilter('ULTRASAT','R1') Error using : For colon operator with char operands, first and last operands must be char.

Error in AstFilter (line 52) for I=1:1:N

EranOfek commented 1 year ago

you need to copy the +cats directory from e.g., euler

agioffe commented 1 year ago

Eventually, I managed to fix it by just copying into the +cats/+spec/ files named a.mat and a.m from my local machine. Thank you!