From stuart at cadair.com Sat Jun 1 09:25:43 2019 From: stuart at cadair.com (stuart at cadair.com) Date: Sat, 01 Jun 2019 14:25:43 +0100 Subject: [AstroPy] SunPy 1.0 Released! Message-ID: <1559395543.26896.4@cadair.com> The SunPy project is happy to announce the release of SunPy 1.0.0! This release has been in development for 14 months, and is a large change from the 0.x series of SunPy releases with a lot of old functionality removed and some exciting new features. The major highlights of this release are: A complete transition of the whole code base to use Astropy Time, which was implemented by Vishnunarayan K I as part of Google Summer of Code 2018. A rewrite of how all the clients in sunpy.net download files from the internet. This means vastly improved progress bars, skipping downloads if files are present, and better visibility and retrying of download errors. A rewrite of the differential rotation and image warping code to correctly account for observer location using the Astropy coordinate functionality. Removal of many deprecated functions and submodules; we have used the 1.0 release as a chance to clean out SunPy reducing the number of lines of Python code in the project by almost 3,000! The first release of SunPy to be Python 3 only, requiring Python 3.6+. See What's New in SunPy 1.0 for more details and the Full Changelog for the full list of over 150 changes in SunPy 1.0. This release includes many breaking changes and may require your code to be updated to support it. We hope you see the value in having the extra features these changes have enabled and a code base that is easier to maintain. We will be continuing to release bug fixes to the 0.9.z series until the end of 2019. We hope this gives you enough time to update your code and start enjoying all the improvements in SunPy 1.0. If you use conda, you can update to this release by running: $ conda install -c conda-forge sunpy or, if you use pip, by running: $ pip install -U sunpy If you haven't already installed SunPy we recommend you follow our Installation Guide . <>By the numbers This release of SunPy contains 1913 commits in 332 merged pull requests closing 582 issues from 46 people, 25 of which are first time contributors to SunPy. The people who have contributed to the code for this release are: Abhigyan Bose * Airmansmith97 * Albert Y. Shih Andre Chicrala * Andrew Hill * Andrew Inglis Andrew Leonard Arthur Eigenbrot * Bernhard M. Wiedemann * Brandon Stone * Brigitta Sipocz Daniel D'Avella Daniel Ryan David P?rez-Su?rez David Stansby Deepankar Sharma * Emmanuel Arias * Harsh Mathur * Jack Ireland Jacob * Jai Ram Rideout * Larry Manley Laura Hayes * Manas Mangaonkar * Matthew Mendero * Md Akramul Haque * Michael S Kirk Micka?l Schoentgen * Monica Bobra * Nabil Freij Naman9639 * Prateek Chanda Punyaslok Pattnaik Reid Gomillion * Sarthak Jain * Shane Maloney Shresth Verma Sourav Ghosh * Steven Christe Stuart Mumford Vishnunarayan K I. Will Barnes Yash Jain Yash Krishan * Yash Sharma * jamescalixto * Where a * indicates their first contribution to SunPy. Happy Pythoning, Stuart -------------- next part -------------- An HTML attachment was scrubbed... URL: From philippe.salome at obspm.fr Tue Jun 4 09:38:43 2019 From: philippe.salome at obspm.fr (salome) Date: Tue, 4 Jun 2019 15:38:43 +0200 Subject: [AstroPy] SpectralCube and ytcube.quick_isocontour with FITS Message-ID: <83FCF30E-96E9-4583-9E74-50346F367F04@obspm.fr> Hello, I have troubles with trying to export a FITS cube (118, 480, 480) into Sketchlab with SpectralCube. I am afraid I don?t understand what?s the array dimension related to. If anyone has an idea, it would be very helpful. Thanks a lot ! Here is the example =================================================================== import astropy.units as u import numpy as np from spectral_cube import SpectralCube from yt.mods import ColorTransferFunction, write_bitmap import astropy.units as u # Read in spectral cube filename = '/Users/salome/uid___A001_X88f_X25b.HH212_sci.spw25.cube.I.pbcor.fits' cube = SpectralCube.read(filename, format='fits') cube.min() cube.max() # Extract the yt object from the SpectralCube instance ytcube = cube.to_yt(spectral_factor=0.75) WARNING: StokesWarning: Cube is a Stokes cube, returning spectral cube for I component [spectral_cube.spectral_cube] yt : [WARNING ] 2019-06-04 15:31:36,176 Cannot find time yt : [INFO ] 2019-06-04 15:31:36,177 Detected these axes: RA---SIN DEC--SIN FREQ yt : [WARNING ] 2019-06-04 15:31:36,181 No length conversion provided. Assuming 1 = 1 cm. yt : [INFO ] 2019-06-04 15:31:36,197 Parameters: current_time = 0.0 yt : [INFO ] 2019-06-04 15:31:36,197 Parameters: domain_dimensions = [480 480 118] yt : [INFO ] 2019-06-04 15:31:36,198 Parameters: domain_left_edge = [0.5 0.5 0.5] yt : [INFO ] 2019-06-04 15:31:36,199 Parameters: domain_right_edge = [480.5 480.5 89. ] yt : [INFO ] 2019-06-04 15:31:36,202 Parameters: cosmological_simulation = 0.0 WARNING: PossiblySlowWarning: This function () requires loading the entire cube into memory and may therefore be slow. [spectral_cube.utils] WARNING: PossiblySlowWarning: This function () requires loading the entire cube into memory and may therefore be slow. [spectral_cube.utils] ytcube.quick_isocontour(export_to='ply', filename='meshes.ply', level=0.02) =================================================================== ?> WARNING: PossiblySlowWarning: This function () requires loading the entire cube into memory and may therefore be slow. [spectral_cube.utils] yt : [INFO ] 2019-06-04 15:20:21,909 Adding field flux to the list of fields. --------------------------------------------------------------------------- IndexError Traceback (most recent call last) in ----> 1 ytcube.quick_isocontour() /anaconda3/lib/python3.6/site-packages/spectral_cube/ytcube.py in quick_isocontour(self, level, title, description, color_map, color_log, export_to, filename, **kwargs) 229 description=description, 230 color_map=color_map, --> 231 color_log=color_log, **kwargs) 232 elif export_to == 'obj': 233 if filename is None: /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in export_sketchfab(self, title, description, api_key, color_field, color_map, color_log, bounds, no_ghost) 1924 ply_file = TemporaryFile() 1925 self.export_ply(ply_file, bounds, color_field, color_map, color_log, -> 1926 sample_type = "vertex", no_ghost = no_ghost) 1927 ply_file.seek(0) 1928 # Greater than ten million vertices and we throw an error but dump /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in export_ply(self, filename, bounds, color_field, color_map, color_log, sample_type, no_ghost) 1764 if color_map is None: 1765 color_map = ytcfg.get("yt", "default_colormap") -> 1766 if self.vertices is None: 1767 self.get_data(color_field, sample_type, no_ghost=no_ghost) 1768 elif color_field is not None: /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in vertices(self) 1300 def vertices(self): 1301 if self._vertices is None: -> 1302 self.get_data() 1303 return self._vertices 1304 /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in get_data(self, fields, sample_type, no_ghost) 1170 my_verts = self._extract_isocontours_from_grid( 1171 block, self.surface_field, self.field_value, -> 1172 mask, fields, sample_type, no_ghost=no_ghost) 1173 if fields is not None: 1174 my_verts, svals = my_verts /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in _extract_isocontours_from_grid(self, grid, field, value, mask, sample_values, sample_type, no_ghost) 1194 no_ghost = False): 1195 # TODO: check if multiple fields can be passed here -> 1196 vals = grid.get_vertex_centered_data([field], no_ghost=no_ghost)[field] 1197 if sample_values is not None: 1198 # TODO: is no_ghost=False correct here? /anaconda3/lib/python3.6/site-packages/yt/data_objects/grid_patch.py in get_vertex_centered_data(self, fields, smoothed, no_ghost) 308 new_fields[field], output_left) 309 else: --> 310 cg = self.retrieve_ghost_zones(1, fields, smoothed=smoothed) 311 for field in fields: 312 np.add(new_fields[field], cg[field][1: ,1: ,1: ], new_fields[field]) /anaconda3/lib/python3.6/site-packages/yt/data_objects/grid_patch.py in retrieve_ghost_zones(self, n_zones, fields, all_levels, smoothed) 270 level, new_left_edge, 271 field_parameters = field_parameters, --> 272 **kwargs) 273 else: 274 cube = self.ds.covering_grid(level, new_left_edge, /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in __init__(self, *args, **kwargs) 925 ds.domain_dimensions.astype("float64")) 926 self.global_endindex = None --> 927 YTCoveringGrid.__init__(self, *args, **kwargs) 928 self._final_start_index = self.global_startindex 929 /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in __init__(self, level, left_edge, dims, fields, ds, num_ghost_zones, use_pbar, field_parameters) 553 (self.left_edge-self.ds.domain_left_edge)/self.dds).astype('int64') 554 self._setup_data_source() --> 555 self.get_data(fields) 556 557 @property /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in get_data(self, fields) 640 raise 641 if len(part) > 0: self._fill_particles(part) --> 642 if len(fill) > 0: self._fill_fields(fill) 643 for a, f in sorted(alias.items()): 644 if f.particle_type: /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in _fill_fields(self, fields) 1001 domain_dims = domain_dims.astype("int64") 1002 tot = ls.current_dims.prod() -> 1003 for chunk in ls.data_source.chunks(fields, "io"): 1004 chunk[fields[0]] 1005 input_fields = [chunk[field] for field in fields] /anaconda3/lib/python3.6/site-packages/yt/data_objects/data_containers.py in chunks(self, fields, chunking_style, **kwargs) 1274 continue 1275 with self._chunked_read(chunk): -> 1276 self.get_data(fields) 1277 # NOTE: we yield before releasing the context 1278 yield self /anaconda3/lib/python3.6/site-packages/yt/data_objects/data_containers.py in get_data(self, fields) 1368 # need to be generated. 1369 read_fluids, gen_fluids = self.index._read_fluid_fields( -> 1370 fluids, self, self._current_chunk) 1371 for f, v in read_fluids.items(): 1372 self.field_data[f] = self.ds.arr(v, input_units = finfos[f].units) /anaconda3/lib/python3.6/site-packages/yt/geometry/geometry_handler.py in _read_fluid_fields(self, fields, dobj, chunk) 243 selector, 244 fields_to_read, --> 245 chunk_size) 246 return fields_to_return, fields_to_generate 247 /anaconda3/lib/python3.6/site-packages/yt/frontends/fits/io.py in _read_fluid_selection(self, chunks, selector, fields, size) 98 data[np.isnan(data)] = self.ds.nan_mask["all"] 99 data = bzero + bscale*data --> 100 ind += g.select(selector, data.astype("float64"), rv[field], ind) 101 return rv /anaconda3/lib/python3.6/site-packages/yt/data_objects/grid_patch.py in select(self, selector, source, dest, offset) 417 slices = get_nodal_slices(source.shape, nodal_flag, dim) 418 for i , sl in enumerate(slices): --> 419 dest[offset:offset+count, i] = source[sl][np.squeeze(mask)] 420 return count 421 IndexError: boolean index did not match indexed array along dimension 2; dimension is 5 but corresponding boolean dimension is 21 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jzuhone at gmail.com Tue Jun 4 10:15:16 2019 From: jzuhone at gmail.com (John ZuHone) Date: Tue, 4 Jun 2019 10:15:16 -0400 Subject: [AstroPy] SpectralCube and ytcube.quick_isocontour with FITS In-Reply-To: <83FCF30E-96E9-4583-9E74-50346F367F04@obspm.fr> References: <83FCF30E-96E9-4583-9E74-50346F367F04@obspm.fr> Message-ID: <95FDC033-2D57-4DF0-B990-639F7D24CEE4@gmail.com> Salome, What is the version of yt and SpectralCube you are using? John Z > On Jun 4, 2019, at 9:38 AM, salome wrote: > > Hello, > > I have troubles with trying to export a FITS cube (118, 480, 480) into Sketchlab with SpectralCube. > I am afraid I don?t understand what?s the array dimension related to. If anyone has an idea, it would > be very helpful. Thanks a lot ! > > Here is the example > > =================================================================== > import astropy.units as u > import numpy as np > from spectral_cube import SpectralCube > from yt.mods import ColorTransferFunction, write_bitmap > import astropy.units as u > > # Read in spectral cube > filename = '/Users/salome/uid___A001_X88f_X25b.HH212_sci.spw25.cube.I.pbcor.fits' > cube = SpectralCube.read(filename, format='fits') > cube.min() > cube.max() > > # Extract the yt object from the SpectralCube instance > ytcube = cube.to_yt(spectral_factor=0.75) > > WARNING: StokesWarning: Cube is a Stokes cube, returning spectral cube for I component [spectral_cube.spectral_cube] > yt : [WARNING ] 2019-06-04 15:31:36,176 Cannot find time > yt : [INFO ] 2019-06-04 15:31:36,177 Detected these axes: RA---SIN DEC--SIN FREQ > yt : [WARNING ] 2019-06-04 15:31:36,181 No length conversion provided. Assuming 1 = 1 cm. > yt : [INFO ] 2019-06-04 15:31:36,197 Parameters: current_time = 0.0 > yt : [INFO ] 2019-06-04 15:31:36,197 Parameters: domain_dimensions = [480 480 118] > yt : [INFO ] 2019-06-04 15:31:36,198 Parameters: domain_left_edge = [0.5 0.5 0.5] > yt : [INFO ] 2019-06-04 15:31:36,199 Parameters: domain_right_edge = [480.5 480.5 89. ] > yt : [INFO ] 2019-06-04 15:31:36,202 Parameters: cosmological_simulation = 0.0 > WARNING: PossiblySlowWarning: This function () requires loading the entire cube into memory and may therefore be slow. [spectral_cube.utils] > WARNING: PossiblySlowWarning: This function () requires loading the entire cube into memory and may therefore be slow. [spectral_cube.utils] > > ytcube.quick_isocontour(export_to='ply', filename='meshes.ply', level=0.02) > =================================================================== > > ?> > > WARNING: PossiblySlowWarning: This function () requires loading the entire cube into memory and may therefore be slow. [spectral_cube.utils] > yt : [INFO ] 2019-06-04 15:20:21,909 Adding field flux to the list of fields. > --------------------------------------------------------------------------- > IndexError Traceback (most recent call last) > in > ----> 1 ytcube.quick_isocontour() > > /anaconda3/lib/python3.6/site-packages/spectral_cube/ytcube.py in quick_isocontour(self, level, title, description, color_map, color_log, export_to, filename, **kwargs) > 229 description=description, > 230 color_map=color_map, > --> 231 color_log=color_log, **kwargs) > 232 elif export_to == 'obj': > 233 if filename is None: > > /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in export_sketchfab(self, title, description, api_key, color_field, color_map, color_log, bounds, no_ghost) > 1924 ply_file = TemporaryFile() > 1925 self.export_ply(ply_file, bounds, color_field, color_map, color_log, > -> 1926 sample_type = "vertex", no_ghost = no_ghost) > 1927 ply_file.seek(0) > 1928 # Greater than ten million vertices and we throw an error but dump > > /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in export_ply(self, filename, bounds, color_field, color_map, color_log, sample_type, no_ghost) > 1764 if color_map is None: > 1765 color_map = ytcfg.get("yt", "default_colormap") > -> 1766 if self.vertices is None: > 1767 self.get_data(color_field, sample_type, no_ghost=no_ghost) > 1768 elif color_field is not None: > > /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in vertices(self) > 1300 def vertices(self): > 1301 if self._vertices is None: > -> 1302 self.get_data() > 1303 return self._vertices > 1304 > > /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in get_data(self, fields, sample_type, no_ghost) > 1170 my_verts = self._extract_isocontours_from_grid( > 1171 block, self.surface_field, self.field_value, > -> 1172 mask, fields, sample_type, no_ghost=no_ghost) > 1173 if fields is not None: > 1174 my_verts, svals = my_verts > > /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in _extract_isocontours_from_grid(self, grid, field, value, mask, sample_values, sample_type, no_ghost) > 1194 no_ghost = False): > 1195 # TODO: check if multiple fields can be passed here > -> 1196 vals = grid.get_vertex_centered_data([field], no_ghost=no_ghost)[field] > 1197 if sample_values is not None: > 1198 # TODO: is no_ghost=False correct here? > > /anaconda3/lib/python3.6/site-packages/yt/data_objects/grid_patch.py in get_vertex_centered_data(self, fields, smoothed, no_ghost) > 308 new_fields[field], output_left) > 309 else: > --> 310 cg = self.retrieve_ghost_zones(1, fields, smoothed=smoothed) > 311 for field in fields: > 312 np.add(new_fields[field], cg[field][1: ,1: ,1: ], new_fields[field]) > > /anaconda3/lib/python3.6/site-packages/yt/data_objects/grid_patch.py in retrieve_ghost_zones(self, n_zones, fields, all_levels, smoothed) > 270 level, new_left_edge, > 271 field_parameters = field_parameters, > --> 272 **kwargs) > 273 else: > 274 cube = self.ds.covering_grid(level, new_left_edge, > > /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in __init__(self, *args, **kwargs) > 925 ds.domain_dimensions.astype("float64")) > 926 self.global_endindex = None > --> 927 YTCoveringGrid.__init__(self, *args, **kwargs) > 928 self._final_start_index = self.global_startindex > 929 > > /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in __init__(self, level, left_edge, dims, fields, ds, num_ghost_zones, use_pbar, field_parameters) > 553 (self.left_edge-self.ds.domain_left_edge)/self.dds).astype('int64') > 554 self._setup_data_source() > --> 555 self.get_data(fields) > 556 > 557 @property > > /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in get_data(self, fields) > 640 raise > 641 if len(part) > 0: self._fill_particles(part) > --> 642 if len(fill) > 0: self._fill_fields(fill) > 643 for a, f in sorted(alias.items()): > 644 if f.particle_type: > > /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in _fill_fields(self, fields) > 1001 domain_dims = domain_dims.astype("int64") > 1002 tot = ls.current_dims.prod() > -> 1003 for chunk in ls.data_source.chunks(fields, "io"): > 1004 chunk[fields[0]] > 1005 input_fields = [chunk[field] for field in fields] > > /anaconda3/lib/python3.6/site-packages/yt/data_objects/data_containers.py in chunks(self, fields, chunking_style, **kwargs) > 1274 continue > 1275 with self._chunked_read(chunk): > -> 1276 self.get_data(fields) > 1277 # NOTE: we yield before releasing the context > 1278 yield self > > /anaconda3/lib/python3.6/site-packages/yt/data_objects/data_containers.py in get_data(self, fields) > 1368 # need to be generated. > 1369 read_fluids, gen_fluids = self.index._read_fluid_fields( > -> 1370 fluids, self, self._current_chunk) > 1371 for f, v in read_fluids.items(): > 1372 self.field_data[f] = self.ds.arr(v, input_units = finfos[f].units) > > /anaconda3/lib/python3.6/site-packages/yt/geometry/geometry_handler.py in _read_fluid_fields(self, fields, dobj, chunk) > 243 selector, > 244 fields_to_read, > --> 245 chunk_size) > 246 return fields_to_return, fields_to_generate > 247 > > /anaconda3/lib/python3.6/site-packages/yt/frontends/fits/io.py in _read_fluid_selection(self, chunks, selector, fields, size) > 98 data[np.isnan(data)] = self.ds.nan_mask["all"] > 99 data = bzero + bscale*data > --> 100 ind += g.select(selector, data.astype("float64"), rv[field], ind) > 101 return rv > > /anaconda3/lib/python3.6/site-packages/yt/data_objects/grid_patch.py in select(self, selector, source, dest, offset) > 417 slices = get_nodal_slices(source.shape, nodal_flag, dim) > 418 for i , sl in enumerate(slices): > --> 419 dest[offset:offset+count, i] = source[sl][np.squeeze(mask)] > 420 return count > 421 > > IndexError: boolean index did not match indexed array along dimension 2; dimension is 5 but corresponding boolean dimension is 21 > > _______________________________________________ > AstroPy mailing list > AstroPy at python.org > https://mail.python.org/mailman/listinfo/astropy -------------- next part -------------- An HTML attachment was scrubbed... URL: From philippe.salome at obspm.fr Thu Jun 6 02:45:49 2019 From: philippe.salome at obspm.fr (salome) Date: Thu, 6 Jun 2019 08:45:49 +0200 Subject: [AstroPy] SpectralCube and ytcube.quick_isocontour with FITS In-Reply-To: <95FDC033-2D57-4DF0-B990-639F7D24CEE4@gmail.com> References: <83FCF30E-96E9-4583-9E74-50346F367F04@obspm.fr> <95FDC033-2D57-4DF0-B990-639F7D24CEE4@gmail.com> Message-ID: <7EB18B21-D362-479B-BCD4-BE15A4A7768F@obspm.fr> Hi, Thanks for your help. Here are the versions I am using : yt.__version__ 3.5.1 spectral_cube.__version__ 0.4.4 Cheers, Philippe > Le 4 juin 2019 ? 16:15, John ZuHone a ?crit : > > Salome, > > What is the version of yt and SpectralCube you are using? > > John Z > >> On Jun 4, 2019, at 9:38 AM, salome > wrote: >> >> Hello, >> >> I have troubles with trying to export a FITS cube (118, 480, 480) into Sketchlab with SpectralCube. >> I am afraid I don?t understand what?s the array dimension related to. If anyone has an idea, it would >> be very helpful. Thanks a lot ! >> >> Here is the example >> >> =================================================================== >> import astropy.units as u >> import numpy as np >> from spectral_cube import SpectralCube >> from yt.mods import ColorTransferFunction, write_bitmap >> import astropy.units as u >> >> # Read in spectral cube >> filename = '/Users/salome/uid___A001_X88f_X25b.HH212_sci.spw25.cube.I.pbcor.fits' >> cube = SpectralCube.read(filename, format='fits') >> cube.min() >> cube.max() >> >> # Extract the yt object from the SpectralCube instance >> ytcube = cube.to_yt(spectral_factor=0.75) >> >> WARNING: StokesWarning: Cube is a Stokes cube, returning spectral cube for I component [spectral_cube.spectral_cube] >> yt : [WARNING ] 2019-06-04 15:31:36,176 Cannot find time >> yt : [INFO ] 2019-06-04 15:31:36,177 Detected these axes: RA---SIN DEC--SIN FREQ >> yt : [WARNING ] 2019-06-04 15:31:36,181 No length conversion provided. Assuming 1 = 1 cm. >> yt : [INFO ] 2019-06-04 15:31:36,197 Parameters: current_time = 0.0 >> yt : [INFO ] 2019-06-04 15:31:36,197 Parameters: domain_dimensions = [480 480 118] >> yt : [INFO ] 2019-06-04 15:31:36,198 Parameters: domain_left_edge = [0.5 0.5 0.5] >> yt : [INFO ] 2019-06-04 15:31:36,199 Parameters: domain_right_edge = [480.5 480.5 89. ] >> yt : [INFO ] 2019-06-04 15:31:36,202 Parameters: cosmological_simulation = 0.0 >> WARNING: PossiblySlowWarning: This function () requires loading the entire cube into memory and may therefore be slow. [spectral_cube.utils] >> WARNING: PossiblySlowWarning: This function () requires loading the entire cube into memory and may therefore be slow. [spectral_cube.utils] >> >> ytcube.quick_isocontour(export_to='ply', filename='meshes.ply', level=0.02) >> =================================================================== >> >> ?> >> >> WARNING: PossiblySlowWarning: This function () requires loading the entire cube into memory and may therefore be slow. [spectral_cube.utils] >> yt : [INFO ] 2019-06-04 15:20:21,909 Adding field flux to the list of fields. >> --------------------------------------------------------------------------- >> IndexError Traceback (most recent call last) >> in >> ----> 1 ytcube.quick_isocontour() >> >> /anaconda3/lib/python3.6/site-packages/spectral_cube/ytcube.py in quick_isocontour(self, level, title, description, color_map, color_log, export_to, filename, **kwargs) >> 229 description=description, >> 230 color_map=color_map, >> --> 231 color_log=color_log, **kwargs) >> 232 elif export_to == 'obj': >> 233 if filename is None: >> >> /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in export_sketchfab(self, title, description, api_key, color_field, color_map, color_log, bounds, no_ghost) >> 1924 ply_file = TemporaryFile() >> 1925 self.export_ply(ply_file, bounds, color_field, color_map, color_log, >> -> 1926 sample_type = "vertex", no_ghost = no_ghost) >> 1927 ply_file.seek(0) >> 1928 # Greater than ten million vertices and we throw an error but dump >> >> /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in export_ply(self, filename, bounds, color_field, color_map, color_log, sample_type, no_ghost) >> 1764 if color_map is None: >> 1765 color_map = ytcfg.get("yt", "default_colormap") >> -> 1766 if self.vertices is None: >> 1767 self.get_data(color_field, sample_type, no_ghost=no_ghost) >> 1768 elif color_field is not None: >> >> /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in vertices(self) >> 1300 def vertices(self): >> 1301 if self._vertices is None: >> -> 1302 self.get_data() >> 1303 return self._vertices >> 1304 >> >> /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in get_data(self, fields, sample_type, no_ghost) >> 1170 my_verts = self._extract_isocontours_from_grid( >> 1171 block, self.surface_field, self.field_value, >> -> 1172 mask, fields, sample_type, no_ghost=no_ghost) >> 1173 if fields is not None: >> 1174 my_verts, svals = my_verts >> >> /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in _extract_isocontours_from_grid(self, grid, field, value, mask, sample_values, sample_type, no_ghost) >> 1194 no_ghost = False): >> 1195 # TODO: check if multiple fields can be passed here >> -> 1196 vals = grid.get_vertex_centered_data([field], no_ghost=no_ghost)[field] >> 1197 if sample_values is not None: >> 1198 # TODO: is no_ghost=False correct here? >> >> /anaconda3/lib/python3.6/site-packages/yt/data_objects/grid_patch.py in get_vertex_centered_data(self, fields, smoothed, no_ghost) >> 308 new_fields[field], output_left) >> 309 else: >> --> 310 cg = self.retrieve_ghost_zones(1, fields, smoothed=smoothed) >> 311 for field in fields: >> 312 np.add(new_fields[field], cg[field][1: ,1: ,1: ], new_fields[field]) >> >> /anaconda3/lib/python3.6/site-packages/yt/data_objects/grid_patch.py in retrieve_ghost_zones(self, n_zones, fields, all_levels, smoothed) >> 270 level, new_left_edge, >> 271 field_parameters = field_parameters, >> --> 272 **kwargs) >> 273 else: >> 274 cube = self.ds.covering_grid(level, new_left_edge, >> >> /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in __init__(self, *args, **kwargs) >> 925 ds.domain_dimensions.astype("float64")) >> 926 self.global_endindex = None >> --> 927 YTCoveringGrid.__init__(self, *args, **kwargs) >> 928 self._final_start_index = self.global_startindex >> 929 >> >> /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in __init__(self, level, left_edge, dims, fields, ds, num_ghost_zones, use_pbar, field_parameters) >> 553 (self.left_edge-self.ds.domain_left_edge)/self.dds).astype('int64') >> 554 self._setup_data_source() >> --> 555 self.get_data(fields) >> 556 >> 557 @property >> >> /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in get_data(self, fields) >> 640 raise >> 641 if len(part) > 0: self._fill_particles(part) >> --> 642 if len(fill) > 0: self._fill_fields(fill) >> 643 for a, f in sorted(alias.items()): >> 644 if f.particle_type: >> >> /anaconda3/lib/python3.6/site-packages/yt/data_objects/construction_data_containers.py in _fill_fields(self, fields) >> 1001 domain_dims = domain_dims.astype("int64") >> 1002 tot = ls.current_dims.prod() >> -> 1003 for chunk in ls.data_source.chunks(fields, "io"): >> 1004 chunk[fields[0]] >> 1005 input_fields = [chunk[field] for field in fields] >> >> /anaconda3/lib/python3.6/site-packages/yt/data_objects/data_containers.py in chunks(self, fields, chunking_style, **kwargs) >> 1274 continue >> 1275 with self._chunked_read(chunk): >> -> 1276 self.get_data(fields) >> 1277 # NOTE: we yield before releasing the context >> 1278 yield self >> >> /anaconda3/lib/python3.6/site-packages/yt/data_objects/data_containers.py in get_data(self, fields) >> 1368 # need to be generated. >> 1369 read_fluids, gen_fluids = self.index._read_fluid_fields( >> -> 1370 fluids, self, self._current_chunk) >> 1371 for f, v in read_fluids.items(): >> 1372 self.field_data[f] = self.ds.arr(v, input_units = finfos[f].units) >> >> /anaconda3/lib/python3.6/site-packages/yt/geometry/geometry_handler.py in _read_fluid_fields(self, fields, dobj, chunk) >> 243 selector, >> 244 fields_to_read, >> --> 245 chunk_size) >> 246 return fields_to_return, fields_to_generate >> 247 >> >> /anaconda3/lib/python3.6/site-packages/yt/frontends/fits/io.py in _read_fluid_selection(self, chunks, selector, fields, size) >> 98 data[np.isnan(data)] = self.ds.nan_mask["all"] >> 99 data = bzero + bscale*data >> --> 100 ind += g.select(selector, data.astype("float64"), rv[field], ind) >> 101 return rv >> >> /anaconda3/lib/python3.6/site-packages/yt/data_objects/grid_patch.py in select(self, selector, source, dest, offset) >> 417 slices = get_nodal_slices(source.shape, nodal_flag, dim) >> 418 for i , sl in enumerate(slices): >> --> 419 dest[offset:offset+count, i] = source[sl][np.squeeze(mask)] >> 420 return count >> 421 >> >> IndexError: boolean index did not match indexed array along dimension 2; dimension is 5 but corresponding boolean dimension is 21 >> >> _______________________________________________ >> AstroPy mailing list >> AstroPy at python.org >> https://mail.python.org/mailman/listinfo/astropy > > _______________________________________________ > AstroPy mailing list > AstroPy at python.org > https://mail.python.org/mailman/listinfo/astropy -------------- next part -------------- An HTML attachment was scrubbed... URL: From erik.tollerud at gmail.com Thu Jun 13 12:37:17 2019 From: erik.tollerud at gmail.com (Erik Tollerud) Date: Thu, 13 Jun 2019 12:37:17 -0400 Subject: [AstroPy] ANN: Astropy v3.2 released Message-ID: Dear colleagues, We are very happy to announce the v3.2 release of the Astropy package, a core Python package for Astronomy: http://www.astropy.org Astropy is a community-driven Python package intended to contain much of the core functionality and common tools needed for astronomy and astrophysics. It is part of the Astropy Project, which aims to foster an ecosystem of interoperable astronomy packages for Python. New and improved major functionality in this release includes: * New Sub-package for Time Series * New SI/CODATA 2018 Constants * Additions and changes to Ecliptic Transformations * Table performance improvements and change in metadata handling * Table I/O integration of pandas I/O functions for ASCII tables * Improved help on Table read() and write() methods In addition, hundreds of smaller improvements and fixes have been made. An overview of the changes is provided at: http://docs.astropy.org/en/stable/whatsnew/3.2.html Note that the Astropy 3.x series only supports Python 3. Python 2 users can continue to use the 2.x (LTS) series (but without new features). Instructions for installing Astropy are provided on our website, and extensive documentation can be found at: http://docs.astropy.org If you make use of the Anaconda Python Distribution, you can update to Astropy v3.2 with: conda update astropy Whereas if you usually use pip, you can do: pip install astropy --upgrade Please report any issues, or request new features via our GitHub repository: https://github.com/astropy/astropy/issues Over 300 developers have contributed code to Astropy so far, and you can find out more about the team behind Astropy here: http://www.astropy.org/team.html As a reminder, Astropy v2.0 (our long term support release) will continue to be supported with bug fixes (but no new features) until the end of 2019, so if you need to use Astropy in a very stable environment, you may want to consider staying on the v2.0.x set of releases (for which we have recently released v2.0.13). If you use Astropy directly for your work, or as a dependency to another package, please remember to acknowledgment it by citing the appropriate Astropy paper. For the most up-to-date suggestions, see the acknowledgement page, but as of this release the recommendation is: This research made use of Astropy, a community-developed core Python package for Astronomy (Astropy Collaboration, 2018). where (Astropy Collaboration, 2018) is a reference to https://doi.org/10.3847/1538-3881/aabc4f Special thanks to the coordinator for this release: Brigitta Sipocz. We hope that you enjoy using Astropy as much as we enjoyed developing it! Erik Tollerud, Tom Robitaille, Kelle Cruz, and Tom Aldcroft on behalf of The Astropy Collaboration -------------- next part -------------- An HTML attachment was scrubbed... URL: From yannick.roehlly at gmail.com Thu Jun 27 12:12:48 2019 From: yannick.roehlly at gmail.com (Yannick Roehlly) Date: Thu, 27 Jun 2019 18:12:48 +0200 Subject: [AstroPy] reproject and flux conservation Message-ID: <2315892.3lP6kCxB8Z@tardis> Hi all, I'm working with a student who needs to have a visible image rebinned to the pixel size of an infra-red one with one to one pixel overlap. I suggested it would be simpler to use `reproject` to re-project the visible map onto the infrared one. What we don't understand, is that whereas reproject_exact is supposed to conserve the flux, the sum of the reprojected array is much higher that the sum of the initial one (I would have expected it to be lower because of parts of the visible map not being on the IR coverage). Where are we wrong? Regards, Yannick -- Every man who is high up likes to think that he has done it all himself, and the wife smiles and lets it go at that. -- Barrie From thomas.robitaille at gmail.com Thu Jun 27 13:49:00 2019 From: thomas.robitaille at gmail.com (Thomas Robitaille) Date: Thu, 27 Jun 2019 18:49:00 +0100 Subject: [AstroPy] reproject and flux conservation In-Reply-To: <2315892.3lP6kCxB8Z@tardis> References: <2315892.3lP6kCxB8Z@tardis> Message-ID: Hi Yannick, By default, reproject preserves surface brightness rather than flux - so for now if you want to preserve flux, you'll need to multiply the final image by the ratio of the pixel area after reprojection to the pixel area before reprojection. See also https://github.com/astropy/reproject/issues/68 for a related issue. Cheers, Tom On Thu, 27 Jun 2019 at 17:13, Yannick Roehlly wrote: > Hi all, > > I'm working with a student who needs to have a visible image rebinned to > the > pixel size of an infra-red one with one to one pixel overlap. I suggested > it > would be simpler to use `reproject` to re-project the visible map onto the > infrared one. > > What we don't understand, is that whereas reproject_exact is supposed to > conserve the flux, the sum of the reprojected array is much higher that > the > sum of the initial one (I would have expected it to be lower because of > parts > of the visible map not being on the IR coverage). > > Where are we wrong? > > Regards, > > Yannick > > -- > Every man who is high up likes to think that he has done it all himself, > and the wife smiles and lets it go at that. > -- Barrie > > > > _______________________________________________ > AstroPy mailing list > AstroPy at python.org > https://mail.python.org/mailman/listinfo/astropy > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dull4.ja at gmail.com Thu Jun 27 17:59:02 2019 From: dull4.ja at gmail.com (James Dull) Date: Thu, 27 Jun 2019 15:59:02 -0600 Subject: [AstroPy] specutils loading FITS file Message-ID: I am currently trying to open a processed, high-resolution spectrum FITS file. I have tried many of the methods suggested online and yet cannot get the file to open without error. I can get get files to open from other sources. Depending on the version of the file used I get the following errors. InvalidSubimageSpecificationError: Cannot find a spectral axis in the provided WCS. Are your 'ctype's correct? Or IORegistryError: Format could not be identified. The FITS file was generated using The SkyX Pro. I have also tried to open the reduced FITS file created by the program ISIS. Any help would be greatly appreciated. Tucannon -------------- next part -------------- An HTML attachment was scrubbed... URL: From contact at nicholasearl.me Fri Jun 28 09:52:44 2019 From: contact at nicholasearl.me (Nicholas Earl) Date: Fri, 28 Jun 2019 09:52:44 -0400 Subject: [AstroPy] specutils loading FITS file In-Reply-To: References: Message-ID: <976aa93a-98ed-495a-b55a-56597bb556ea@www.fastmail.com> Hey James, Specutils dev here. Specutils does not have a FITS loader for every data file (though we do have an extensive collection). I'd suggest following the documentation on creating a custom data loader for your FITS file. Likewise, if you feel so inclined, you can submit a PR to the repository with the loader you create so that others trying to load similar data files won't have to create their own loaders. If you're still unable to load the data file after having written your data loader (or need help writing the data loader), please open an issue on specutils github repo . We're eager to make specutils as usable as possible, so please let us know if you run into trouble. Cheers, Nick On Thu, Jun 27, 2019, at 5:59 PM, James Dull wrote: > I am currently trying to open a processed, high-resolution spectrum FITS file. I have tried many of the methods suggested online and yet cannot get the file to open without error. I can get get files to open from other sources. Depending on the version of the file used I get the following errors. > > InvalidSubimageSpecificationError: Cannot find a spectral axis in the provided WCS. Are your 'ctype's correct? > > Or > > IORegistryError: Format could not be identified. > > The FITS file was generated using The SkyX Pro. I have also tried to open the reduced FITS file created by the program ISIS. > > Any help would be greatly appreciated. > > Tucannon > _______________________________________________ > AstroPy mailing list > AstroPy at python.org > https://mail.python.org/mailman/listinfo/astropy > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dull4.ja at gmail.com Fri Jun 28 10:22:43 2019 From: dull4.ja at gmail.com (James Dull) Date: Fri, 28 Jun 2019 08:22:43 -0600 Subject: [AstroPy] specutils loading FITS file In-Reply-To: <976aa93a-98ed-495a-b55a-56597bb556ea@www.fastmail.com> References: <976aa93a-98ed-495a-b55a-56597bb556ea@www.fastmail.com> Message-ID: Nick, I appreciate the response. Unfortunately, I am new to both python and specutils so building my own loader is very difficult. I have tried following the online instructions for doing this without success. Perhaps my problem lies in not fully understanding the structure of my fits files to begin with. I'll keep plugging away. Jim On Fri, Jun 28, 2019 at 7:53 AM Nicholas Earl wrote: > Hey James, > > Specutils dev here. Specutils does not have a FITS loader for every data > file (though we do have an extensive collection). I'd suggest following the > documentation > on > creating a custom data loader for your FITS file. Likewise, if you feel so > inclined, you can submit a PR to the repository with the loader you create > so that others trying to load similar data files won't have to create their > own loaders. > > If you're still unable to load the data file after having written your > data loader (or need help writing the data loader), please open an issue on specutils > github repo . We're eager to > make specutils as usable as possible, so please let us know if you run into > trouble. > > Cheers, > Nick > > On Thu, Jun 27, 2019, at 5:59 PM, James Dull wrote: > > I am currently trying to open a processed, high-resolution spectrum FITS > file. I have tried many of the methods suggested online and yet cannot get > the file to open without error. I can get get files to open from other > sources. Depending on the version of the file used I get the following > errors. > > > > InvalidSubimageSpecificationError: Cannot find a spectral axis in the > provided WCS. Are your 'ctype's correct? > > > > Or > > > > IORegistryError: Format could not be identified. > > > > The FITS file was generated using The SkyX Pro. I have also tried to open > the reduced FITS file created by the program ISIS. > > > > Any help would be greatly appreciated. > > > Tucannon > _______________________________________________ > AstroPy mailing list > AstroPy at python.org > https://mail.python.org/mailman/listinfo/astropy > > > _______________________________________________ > AstroPy mailing list > AstroPy at python.org > https://mail.python.org/mailman/listinfo/astropy > -------------- next part -------------- An HTML attachment was scrubbed... URL: From teuben at astro.umd.edu Fri Jun 28 10:26:28 2019 From: teuben at astro.umd.edu (Peter Teuben) Date: Fri, 28 Jun 2019 10:26:28 -0400 Subject: [AstroPy] specutils loading FITS file In-Reply-To: References: <976aa93a-98ed-495a-b55a-56597bb556ea@www.fastmail.com> Message-ID: <56f00f84-e816-ef3a-62eb-ecfa6f7a6d89@astro.umd.edu> Jim ??? I'd appreciate a link to an example of your fits spectrum. What instrument was used to take this? peter On 6/28/19 10:22 AM, James Dull wrote: > Nick, > > I appreciate the response. Unfortunately, I am new to both python and > specutils so building my own loader is very difficult. I have tried > following the online instructions for doing this without success. > Perhaps my problem lies in not fully understanding the structure of my > fits files to begin with. I'll keep plugging away. > > Jim > > > > On Fri, Jun 28, 2019 at 7:53 AM Nicholas Earl > wrote: > > Hey James, > > Specutils dev here. Specutils does not have a FITS loader for > every data file (though we do have an extensive collection). I'd > suggest following the documentation > ?on > creating a custom data loader for your FITS file. Likewise, if you > feel so inclined, you can submit a PR to the repository with the > loader you create so that others trying to load similar data files > won't have to create their own loaders. > > If you're still unable to load the data file after having written > your data loader (or need help writing the data loader), please > open an issue on specutils github repo > . We're eager to make > specutils as usable as possible, so please let us know if you run > into trouble. > > Cheers, > Nick > > On Thu, Jun 27, 2019, at 5:59 PM, James Dull wrote: >> >> I am currently trying to open a processed, high-resolution >> spectrum FITS file. I have tried many of the methods suggested >> online and yet cannot get the file to open without error. I can >> get get files to open from other sources. Depending on the >> version of the file used I get the following errors. >> >> >> InvalidSubimageSpecificationError: Cannot find a spectral axis in >> the provided WCS. Are your 'ctype's correct? >> >> >> Or >> >> >> IORegistryError: Format could not be identified. >> >> >> The FITS file was generated using The SkyX Pro. I have also tried >> to open the reduced FITS file created by the program ISIS. >> >> >> Any help would be greatly appreciated. >> >> >> Tucannon >> >> _______________________________________________ >> AstroPy mailing list >> AstroPy at python.org >> https://mail.python.org/mailman/listinfo/astropy >> > > _______________________________________________ > AstroPy mailing list > AstroPy at python.org > https://mail.python.org/mailman/listinfo/astropy > > > _______________________________________________ > AstroPy mailing list > AstroPy at python.org > https://mail.python.org/mailman/listinfo/astropy -------------- next part -------------- An HTML attachment was scrubbed... URL: From teuben at astro.umd.edu Fri Jun 28 10:21:46 2019 From: teuben at astro.umd.edu (Peter Teuben) Date: Fri, 28 Jun 2019 10:21:46 -0400 Subject: [AstroPy] specutils loading FITS file In-Reply-To: <976aa93a-98ed-495a-b55a-56597bb556ea@www.fastmail.com> References: <976aa93a-98ed-495a-b55a-56597bb556ea@www.fastmail.com> Message-ID: Hi James, ??? I recall that Nick and I worked a bit on extracting spectra from a fits cube one or two years ago.? This may still be un-merged code in my forked repo. When you say 'high-resolution spectrum FITS file' what do you mean with this. A 1D spectrum? Even a 1D spectrum can be stored with naxis1,2,3 = 1,1,NAXIS3 where the WCS of axis1 and 2 are used to label the coordinates.?? That format is really still a 3D cube and should work in my version. - peter On 6/28/19 9:52 AM, Nicholas Earl wrote: > Hey James, > > Specutils dev here. Specutils does not have a FITS loader for every > data file (though we do have an extensive collection). I'd suggest > following the documentation > ?on > creating a custom data loader for your FITS file. Likewise, if you > feel so inclined, you can submit a PR to the repository with the > loader you create so that others trying to load similar data files > won't have to create their own loaders. > > If you're still unable to load the data file after having written your > data loader (or need help writing the data loader), please open an > issue on specutils github repo > . We're eager to make > specutils as usable as possible, so please let us know if you run into > trouble. > > Cheers, > Nick > > On Thu, Jun 27, 2019, at 5:59 PM, James Dull wrote: >> >> I am currently trying to open a processed, high-resolution spectrum >> FITS file. I have tried many of the methods suggested online and yet >> cannot get the file to open without error. I can get get files to >> open from other sources. Depending on the version of the file used I >> get the following errors. >> >> >> InvalidSubimageSpecificationError: Cannot find a spectral axis in the >> provided WCS. Are your 'ctype's correct? >> >> >> Or >> >> >> IORegistryError: Format could not be identified. >> >> >> The FITS file was generated using The SkyX Pro. I have also tried to >> open the reduced FITS file created by the program ISIS. >> >> >> Any help would be greatly appreciated. >> >> >> Tucannon >> >> _______________________________________________ >> AstroPy mailing list >> AstroPy at python.org >> https://mail.python.org/mailman/listinfo/astropy >> > > > _______________________________________________ > AstroPy mailing list > AstroPy at python.org > https://mail.python.org/mailman/listinfo/astropy -------------- next part -------------- An HTML attachment was scrubbed... URL: From dull4.ja at gmail.com Fri Jun 28 12:23:53 2019 From: dull4.ja at gmail.com (James Dull) Date: Fri, 28 Jun 2019 10:23:53 -0600 Subject: [AstroPy] specutils loading FITS file In-Reply-To: References: <976aa93a-98ed-495a-b55a-56597bb556ea@www.fastmail.com> Message-ID: Peter, Thanks for the response. My institution has a small observatory with a Shelyak LHires III spectrometer attached to a 14" SCT. This is a very popular setup among amateur astronomers and small colleges. I have tried using both the unprocessed fits image (naxis = 2) and the processed fits image (naxis = 1) fits images. I have used the following commands with success (taken from an online tutorial): f = fits.open('file_path') f.info() image_data=f[0].data print(type(image_data)) print(image_data.shape) f.close() The code returns: No. Name Ver Type Cards Dimensions Format 0 PRIMARY 1 PrimaryHDU 42 (1374, 1099) int16 (rescales to uint16) (1099, 1374) When I try to use from specutils import Spectrum1D spec = Spectrum1D.read('file_path') I get the errors mentioned in my earlier email. I truly believe it is my lack of understanding regarding fits files rather than the code that is the difficulty. I simply want to do some continuum division. eqivalent-width and fwhm calculations, but I am stymied by loading the files. By the way, we have also produced data files which consist of two columns: wavelength (A) and relative flux. Jim On Fri, Jun 28, 2019 at 8:30 AM Peter Teuben wrote: > Hi James, > > I recall that Nick and I worked a bit on extracting spectra from a > fits cube one or two years ago. This may still be un-merged code in my > forked repo. > > When you say 'high-resolution spectrum FITS file' what do you mean with > this. A 1D spectrum? Even a 1D spectrum can be stored with naxis1,2,3 = > 1,1,NAXIS3 where the WCS of axis1 and 2 are used to label the > coordinates. That format is really still a 3D cube and should work in my > version. > > - peter > On 6/28/19 9:52 AM, Nicholas Earl wrote: > > Hey James, > > Specutils dev here. Specutils does not have a FITS loader for every data > file (though we do have an extensive collection). I'd suggest following the > documentation > on > creating a custom data loader for your FITS file. Likewise, if you feel so > inclined, you can submit a PR to the repository with the loader you create > so that others trying to load similar data files won't have to create their > own loaders. > > If you're still unable to load the data file after having written your > data loader (or need help writing the data loader), please open an issue on specutils > github repo . We're eager to > make specutils as usable as possible, so please let us know if you run into > trouble. > > Cheers, > Nick > > On Thu, Jun 27, 2019, at 5:59 PM, James Dull wrote: > > I am currently trying to open a processed, high-resolution spectrum FITS > file. I have tried many of the methods suggested online and yet cannot get > the file to open without error. I can get get files to open from other > sources. Depending on the version of the file used I get the following > errors. > > > > InvalidSubimageSpecificationError: Cannot find a spectral axis in the > provided WCS. Are your 'ctype's correct? > > > > Or > > > > IORegistryError: Format could not be identified. > > > > The FITS file was generated using The SkyX Pro. I have also tried to open > the reduced FITS file created by the program ISIS. > > > > Any help would be greatly appreciated. > > > Tucannon > _______________________________________________ > AstroPy mailing list > AstroPy at python.org > https://mail.python.org/mailman/listinfo/astropy > > > > _______________________________________________ > AstroPy mailing listAstroPy at python.orghttps://mail.python.org/mailman/listinfo/astropy > > _______________________________________________ > AstroPy mailing list > AstroPy at python.org > https://mail.python.org/mailman/listinfo/astropy > -------------- next part -------------- An HTML attachment was scrubbed... URL: