These are chat archives for astropy/astropy
SuperMcFreaky on FreenodeHi All. I've got a question about handling FITS files with io.fits
SuperMcFreaky on FreenodeIs there a way to convert a PrimaryHDU object to an ImageHDU object?
SuperMcFreaky on FreenodeI can do i = fits.ImageHDU(primary.data, header=primary.header)
SuperMcFreaky on Freenodeand that works, but it copies the data into memory, which can be a real problem in my case
astrofrog (@slack_astropy_U07529085:openastronomy.org)Just to check, why do you need to do this?
SuperMcFreaky on FreenodeI have a large collection of single-HDU FITS files that get collected into a custom data object
SuperMcFreaky on Freenodefor debugging purposes it is sometimes useful to write this aggregate object as a single FITS file
SuperMcFreaky on Freenodeand an HDUList with all PrimaryHDUs produces a non-compliant FITS file
SuperMcFreaky on Freenodeit won't even write unless I set output_verify='ignore|warn" in the call to .writeto()
astrofrog (@slack_astropy_U07529085:openastronomy.org)interesting, I would have thought an HDUList of PrimaryHDU would do the right thing
astrofrog (@slack_astropy_U07529085:openastronomy.org)it might be worth opening an issue in the GitHub repo to ask whether astropy could be smarter about auto-converting to ImageHDU when writing, we definitely shouldn't be writing files that don't comply with the standard
astrofrog (@slack_astropy_U07529085:openastronomy.org)I'm not sure how to avoid the copy, if you join the astropy Slack team there is a #fits channel where you could ask
SuperMcFreaky on Freenodewell, it won't do that unless I tell it that I'm OK with a non-standard file
SuperMcFreaky on Freenodeok, I had thought about opening an issue on GitHub but I figured I'd check here first to make sure I wasn't missing something obvious
SuperMcFreaky on FreenodeI feel like the capability should/could be there because io.fits already is really good about using memmap, etc.
SuperMcFreaky on Freenodefor example, if I open 1000 files with large ImageHDUs and put them together in a new HDUList and write that to disk then they data never enters memory
SuperMcFreaky on Freenodewhich is exactly what I want, except for PrimaryHDUs
saimnI don't think that the data is copied if it is a numpy array, but maybe it needs to be copied because it is memmmaped