I know about the DMAP CRDB_IN and CRDB_OUT and CRDB_DBK to get various matrices out. How does one use these (or another method) to get ASET information out in the HDF5 database?
The answer below works to extract the matrices. Is there a reference for how to interpret the IDENTITY and COLUMN data sets such that the matrices can be rebuilt? I didn't see anything in the DMAP programmers guide about it. For example, the demonstration below results in COLUMN containing
@Don Graff Thanks for the example. I was using version 2017 so I didn't see CRDB_MTX, but updated to 2018.2 and now I have it. Can you comment on my edit? I have the results and I can see how to reconstruct the matrix, but I don't see how to use the COLUMN, IDENTITY and DATA data sets to programmatically rebuild them.
This is VERY confusing, so please bear with me. Useing the sample I previously attached, I backed out out what is going on. I created a pdf... It is very busy with information. I will try to highlight the most useful items below.
From the IDENTITY info, the COLUMN_POS value tells you the 'index' you enter into the COLUMN data block to begin each matrix.
Within the COLUMN data block, the first column is actually each matrix column, just start at '1' at each entry point for each matrix. I didn't test how it reports 'empty' columns. Then the 'POSITION' column is telling you which entry point into the DATA information (the left most column of the DATA block). Next is a super confusing aspect- the difference between the next POSITION and the current POSITION is how many rows worth of data to pull for this column from DATA.
The row information in the DATA is the actual matrix row number (after adding 1... remember, most of this indexing starts at zero).
I'll try to attach a pdf with screen captures and arrows, along with notes, describing this.
Don is correct....this requires higher order thinking. But, once you get it, it's straight-forward. The concept of indices in 1 dataset pointing to values in other datasets is used with other datasets (for example it's used for SET and COORDINATE system data in the INPUT group). CRDB_MTX data is more complicated with the 1st dataset pointing to a 2nd dataset that points to a 3rd dataset.
I investigated CRDB_MTX data several months ago and wrote a prototype Python function. It reads the MATRIX data and writes it to the screen in [Col#, Row#] = value format. It might be useful as a starting point (remember it's a prototype, and comes with all the usual caveats!!). See the attachment.
Thanks for the great help. I feel like I have all the tools I need to be dangerous. If a revision is planned of the DMAP guide it would be good to include information like this.