Skip to content

Instantly share code, notes, and snippets.

@astrofrog
Last active February 9, 2017 19:30
Show Gist options
  • Save astrofrog/5d4760f3702ebd324855f85f43207bc0 to your computer and use it in GitHub Desktop.
Save astrofrog/5d4760f3702ebd324855f85f43207bc0 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from astropy import units as u"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from contextlib import contextmanager\n",
"\n",
"@contextmanager\n",
"def simplified_error():\n",
" try:\n",
" yield\n",
" except Exception as exc:\n",
" print('...')\n",
" print(exc.__class__.__name__, ':', exc)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Setting parameters to quantities"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Models can now take quantities as parameters:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from astropy.modeling.models import Gaussian1D\n",
"g1 = Gaussian1D(mean=3 * u.m, stddev=2 * u.cm, amplitude=3 * u.Jy)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Accessing the parameter then returns a Parameter object that contains the value and the unit:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"Parameter('mean', value=3.0, unit=m)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g1.mean"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It is then possible to access the individual properties of the parameter:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'mean'"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g1.mean.name"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"3.0"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g1.mean.value"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"$\\mathrm{m}$"
],
"text/plain": [
"Unit(\"m\")"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g1.mean.unit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If a parameter has been initialized as a Quantity, it should always be set to a quantity, but the units don't have to be compatible with the initial ones:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"g1.mean = 3 * u.s"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<Gaussian1D(amplitude=3.0 Jy, mean=3.0 s, stddev=2.0 cm)>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We do this because we don't want to use equivalencies on the parameters (see section below on why this is the case), but in some cases we might want e.g. a temperature parameter to be set to a temperature in e.g. K, C, or F (and these are only convertible via equivalencies).\n",
"\n",
"To change the value of a parameter and not the unit, simply set the value property:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"g1.mean.value = 2"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<Gaussian1D(amplitude=3.0 Jy, mean=2.0 s, stddev=2.0 cm)>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Setting a parameter which was originally set to a quantity to a scalar doesn't work because it's ambiguous whether the user means to change just the value and preserve the unit, or get rid of the unit:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"...\n",
"UnitsError : The 'mean' parameter should be given as a Quantity because it was originally initialized as a Quantity\n"
]
}
],
"source": [
"with simplified_error():\n",
" g1.mean = 2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On the other hand, if a parameter previously defined without units is given a Quantity with a unit, we accept this, because it is unambiguous:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"g0 = Gaussian1D(mean=3)\n",
"g0.mean = 3 * u.m"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In other words, once units are attached to a parameter, they can't be removed due to ambiguous meaning."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Evaluating models with quantities"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Quantities can be passed to model during evaluation:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"g2 = Gaussian1D(mean=3 * u.m, stddev=5 * u.cm)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"$0.13533528 \\; \\mathrm{}$"
],
"text/plain": [
"<Quantity 0.1353352832366122>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g2(2.9 * u.m)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If the units of the parameters and the data are no compatible, a UnitsError will be raised:"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"...\n",
"UnitsError : Units of input 'x', s (time), could not be converted to required input units of m (length)\n"
]
}
],
"source": [
"with simplified_error():\n",
" g2(2.9 * u.s)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this case, since the mean and standard deviation have units, the value passed during evaluation also needs units:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"...\n",
"UnitsError : Units of input 'x', (dimensionless), could not be converted to required input units of m (length)\n"
]
}
],
"source": [
"with simplified_error():\n",
" g2(3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In these cases, the error messages are emitted before ``evaluate`` is even called. This is because ``Gaussian1D`` includes the ``input_units`` property that indicates what units the input should be compatible with:"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"{'x': Unit(\"m\")}"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g2.input_units"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"When implementing models, you don't necessarily have to define input_units, but if you do it will make it easier for the user to know what units they should be using, and also will give clear error messages above (rather than waiting for evaluate to crash).\n",
"\n",
"It is actually possible to allow the input value(s) when evaluating the model to be dimensionless, which is done by setting ``input_units_allow_dimensionless``:"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"g2.input_units_allow_dimensionless = True"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"But this requires the evaluate method to deal properly with dimesnionless input:"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"...\n",
"UnitsError : Can only apply 'subtract' function to dimensionless quantities when other argument is not a quantity (unless the latter is all zero/infinity/nan)\n"
]
}
],
"source": [
"with simplified_error():\n",
" g2(2.9)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We could consider another option which, if True, means that units are attached automatically to dimensionless input"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Equivalencies"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We have to be careful with equivalencies - a Gaussian defined in frequency space is not a Gaussian in wavelength space for example, so we need to make sure that we don't set equivalencies on parameters themselves, otherwise the model may be ambiguous.\n",
"\n",
"Instead, we take the approach of converting the input data to the parameter space, and any equivalencies should be applied at evaluation time to the data (not the parameters). The following example shows how to evaluate a Gaussian model in wavelength space by giving it frequencies. In this case, the model is truly a Gaussian in wavelength space:"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"g3 = Gaussian1D(mean=3 * u.micron, stddev=1 * u.micron, amplitude=3 * u.Jy)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"By default, passing a frequency will not work:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"...\n",
"UnitsError : Units of input 'x', THz (frequency), could not be converted to required input units of micron (length)\n"
]
}
],
"source": [
"with simplified_error():\n",
" g3(1e2 * u.THz)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"But you can pass a dictionary of equivalencies to the equivalencies argument (this needs to be a dictionary since some models can contain multiple inputs)."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"$2.8889868 \\; \\mathrm{Jy}$"
],
"text/plain": [
"<Quantity 2.888986819525229 Jy>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g3(110 * u.THz, equivalencies={'x': u.spectral()})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The key of the dictionary should be the name of the inputs according to:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"('x',)"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g3.inputs"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It is also possible to set default equivalencies for the input parameters using the ``input_units_equivalencies`` property:"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"g3.input_units_equivalencies = {'x': u.spectral()}"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"$2.8889868 \\; \\mathrm{Jy}$"
],
"text/plain": [
"<Quantity 2.888986819525229 Jy>"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g3(110 * u.THz)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Fitting models with units to data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We start off by generating synthetic data"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"x = np.linspace(1, 5, 30) * u.micron"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"y = np.exp(-0.5 * (x - 2.5 * u.micron)**2 / (200 * u.nm)**2) * u.mJy"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x11c40ba90>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nc4GS8Ou4DwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11c3e33c8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(x, y, 'o')\n",
"plt.xlabel('Wavelength (microns)')\n",
"plt.ylabel('Flux density (mJy)')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We define the initial guess for the fitting:"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"g4 = Gaussian1D(mean=3 * u.micron, stddev=1 * u.micron, amplitude=1 * u.Jy)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and we carry out the fit as we would without any units:"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from astropy.modeling import fitting\n",
"fitter = fitting.LevMarLSQFitter()"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"g4_fit = fitter(g4, x, y)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x11c965b00>"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11c3e3828>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(x, y, 'o')\n",
"plt.plot(x, g4_fit(x), '-')\n",
"plt.xlabel('Wavelength (microns)')\n",
"plt.ylabel('Flux density (mJy)')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Fitting with equivalencies"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's now consider the case where the data is not equivalent to those of the parameters, but they are convertible via equivalencies:"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"g5 = Gaussian1D(mean=110 * u.THz, stddev=10 * u.THz, amplitude=1 * u.Jy)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this case, the equivalencies can either be passed via a dictionary as shown higher up for the evaluation examples:"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"g5_fit = fitter(g5, x, y, equivalencies={'x': u.spectral()})"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<Gaussian1D(amplitude=1.0047966839436813 mJy, mean=121.05352130257793 THz, stddev=9.54642179190809 THz)>"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g5_fit"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x11c48b198>"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nVRHKTrpDvQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11c98f550>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(x, y, 'o')\n",
"plt.plot(x, g5_fit(x, equivalencies={'x': u.spectral()}), '-')\n",
"plt.xlabel('Wavelength (microns)')\n",
"plt.ylabel('Flux density (mJy)')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Alternatively, you can once again set ``input_units_equivalencies`` on the model itself:"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"g5.input_units_equivalencies = {'x': u.spectral()}"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"g5_fit = fitter(g5, x, y)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x11ca9a710>"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nVRHKTrpDvQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11ca93f98>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(x, y, 'o')\n",
"plt.plot(x, g5_fit(x), '-')\n",
"plt.xlabel('Wavelength (microns)')\n",
"plt.ylabel('Flux density (mJy)')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Models with n_models > 1"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from astropy.modeling.models import Gaussian1D\n",
"g1 = Gaussian1D(mean=[3, 2, 1] * u.m, stddev=[2, 1, 2] * u.m, amplitude=[1,2,2] * u.Jy, n_models=3)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"$[0.8824969,~2,~1.7649938] \\; \\mathrm{Jy}$"
],
"text/plain": [
"<Quantity [ 0.8824969 , 2. , 1.76499381] Jy>"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g1(2 * u.m)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
@pllim
Copy link

pllim commented Jan 27, 2017

Thanks for the nice example, @astrofrog!

Allowing user to change to any parameter unit without changing value can be potentially confusing. Say, in your Gaussian, if I initialize "mean" to 3 m, and then I set just the unit to cm, naively I might think the mean is now 300 cm. In addition, while allowing user to set parameter unit to whatever desired ensures flexibility, it might not be the right thing to do for a model like blackbody (e.g., it only makes sense for its "temperature" parameter to accept temperature units).

Re: Raising error when setting "mean" as a Quantity to scalar -- An alternate behavior is to assume the original "mean" unit without error (but maybe with UserWarning). That would be more flexible. Although I know I am contradicting myself, because I just argued against flexibility above...

Could you provide an example for "n_models > 1"? If not, I am going to test for that anyway when you are done with coding. But we can also hash it out here if you want.

Have you considered the complexity of compound models with units and the fitting that goes along with those?

Re: "and we carry out the fit as we would without any units" -- I don't understand this statement, as your "x" and "y" both have units...

@nden
Copy link

nden commented Jan 31, 2017

@astrofrog Thanks for the example. I'll have separate comments for separate questions so it's easier to track them.

A question on line 16 above:

g2 = Gaussian1D(mean=3 * u.m, stddev=5 * u.cm)

These work:

g1 = Gaussian1D(mean=1*u.cm)
g2 = Gaussian1D(stddev=1*u.cm)

Should they? Attempting to evaluate them with a Quantity works for g2 and fails for g1.

@nden
Copy link

nden commented Jan 31, 2017

Line 21:

models.input_units_allow_dimensionless=True

does not work with model sets.

@nden
Copy link

nden commented Jan 31, 2017

What is supposed to happen with the polynomial models?

p = Polynomial1D(1, c0=1*u.m, c1=1*um)
p(1)
<Quantity 2,.0 m>
p(1*u.m) -- errors
p.input_units is None

@astrofrog
Copy link
Author

@pllim:

Allowing user to change to any parameter unit without changing value can be potentially confusing. Say, in your Gaussian, if I initialize "mean" to 3 m, and then I set just the unit to cm, naively I might think the mean is now 300 cm. In addition, while allowing user to set parameter unit to whatever desired ensures flexibility, it might not be the right thing to do for a model like blackbody (e.g., it only makes sense for its "temperature" parameter to accept temperature units).

Re: Raising error when setting "mean" as a Quantity to scalar -- An alternate behavior is to assume the original "mean" unit without error (but maybe with UserWarning). That would be more flexible. Although I know I am contradicting myself, because I just argued against flexibility above...

Both good points, I think this needs more discussion before making a decision and will mention these open questions in the PR.

Could you provide an example for "n_models > 1"? If not, I am going to test for that anyway when you are done with coding. But we can also hash it out here if you want.

I will try and add an example here, but it'd be great if you could try that independently.

Have you considered the complexity of compound models with units and the fitting that goes along with those?

No, but if you want to try this out, that would be great. I suspect there is still work to be done there!

Re: "and we carry out the fit as we would without any units" -- I don't understand this statement, as your "x" and "y" both have units...

I meant that the user doesn't have to do anything different from usual for it to work

@astrofrog
Copy link
Author

@nden:

g2 = Gaussian1D(stddev=1*u.cm)

This works because of a special rule: 0 doesn't require units to be treated as a quantity. So I think everything is fine here.

models.input_units_allow_dimensionless=True

I'll look into why this doesn't work with model sets, will investigate!

The behavior with polynomials is a bug, fix forthcoming.

@astrofrog
Copy link
Author

@pllim - I've now disallowed both of these cases in the PR:

Allowing user to change to any parameter unit without changing value can be potentially confusing. Say, in your Gaussian, if I initialize "mean" to 3 m, and then I set just the unit to cm, naively I might think the mean is now 300 cm. In addition, while allowing user to set parameter unit to whatever desired ensures flexibility, it might not be the right thing to do for a model like blackbody (e.g., it only makes sense for its "temperature" parameter to accept temperature units).

Re: Raising error when setting "mean" as a Quantity to scalar -- An alternate behavior is to assume the original "mean" unit without error (but maybe with UserWarning). That would be more flexible. Although I know I am contradicting myself, because I just argued against flexibility above...

I tried different options but I think that the end of the day that both are potentially confusing.

@pllim
Copy link

pllim commented Feb 9, 2017

For the Gaussian1D case, the following definition does not make sense (i.e., setting stddev to a unit that is incompatible with mean) but it is allowed, only to cause other exceptions to be raised on evaluation:

>>> g1 = Gaussian1D(amplitude=1*u.Jy, mean=5000*u.AA, stddev=0.1*u.Jy)
>>> g1(5000)
UnitsError: Can only apply 'subtract' function to ...
>>> g1(5000 * u.AA)
TypeError: Can only apply 'exp' function to dimensionless quantities

While I understand that compound model is future work, we also have to be careful such that massive refactoring won't be required in the future in order to make units work with them. In real life, most of us deal with compound models, so if we want to advertise that units are possible in models, we also have to make sure they will indeed be possible for compound models (albeit not implemented in this PR).

Currently:

>>> g1 = Gaussian1D(amplitude=1*u.Jy, mean=5000*u.AA, stddev=10*u.AA)
>>> g2 = Gaussian1D()
>>> gg = g1 + g2
>>> gg(5000)
UnitsError: Can only apply 'subtract' function to ...
>>> gg(5000 * u.AA)
TypeError: Can only apply 'exp' function to dimensionless quantities

or

>>> g1 = Gaussian1D(amplitude=1*u.Jy, mean=5000*u.AA, stddev=10*u.AA)
>>> g2 = Gaussian1D(amplitude=300*u.mJy, mean=30*u.MHz, stddev=10*u.Hz)
>>> gg = g1 + g2
>>> gg(5000 * u.AA, equivalencies={'x': u.spectral(), 'mean':u.spectral(), 'stddev':u.spectral()})
UnitConversionError: Can only apply 'subtract' function to ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment