MSMG Flow Diagram: Order: Step 1 -> Step 2 -> Step 3 -> Step 4 Step 1: SpLike Para A_model, A_mix, A_loglike CalcModelMixLogLike Step 2: A_loglike SetTour A_tour Para Step 3: A_mix A_tour, A_model AsVs, AsVh, MhVh, Spfract EstLandCover Para Step 4: AsVs AsVh MhVh Spfract ColorCode Images ViewMSMG Parameters: SpLike: This is an input file having data about a geographical area. This area is represented by a grid of n X n pixels. The file contains the probability density (also called likelihoods) for each class label. For example, if the total number of specific classes is 4, and the image size is 128 X 128, this file would be of size 128 X 128 X 4. Ideally, each pixel would be occupied by a single, specific class, but in reality, each pixel need not be so pure; hence each pixel could resemble all specific classes to different degrees. You can give a class the most likely label based on the probability densities, but there are second best answers et al. The probability densities for different classes do not sum to 1. It could less than 1 and if there are many candidate classes, this could be greater than 1. Para: There are other set of parameters supplied, mainly to provide metadata about the image and data about the categorical hierarchy. - List of Specific classes, R List of non-Specific classes, R_G Number of specific and non-specific classes, J and J_G respectively List of all classes, CLIST Dimensions of SpLike and the coarse level, nlines X nsamps, SCoarse respectively Children for each non-leaf node, LCTree Thresholds for children of each non-leaf node, LCTreeDef Categorical tree structure, SpListofGen Step 1 – CalcModelMixLogLike: From the given input image, this step constructs quads of different sizes(coarse level), starting at 1X1, 2X2, 4X4…so on up to the maximum quad size of the image itself. For an image of dimensions n X n, each coarse level will have n quads. Note that the data is wrapped for the quads starting at the last rows/columns. Consider an image of size 4 X 4 as shown below: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 This will have 3 coarse levels – 1 X 1; 2 X 2; 4 X 4. There will be 16 quads for 1 X 1 – quad 1: 1, quad2: 2, quad 3: 3…quad 16: 16. There will be 16 quads for 2 X 2 – quad 1: 1, 2, 5, 6; quad 2: 2, 3, 6, 7; quad 3: 3, 4, 7, 8; quad 4: 4, 1, 8, 5…quad 16: 16, 13, 1, 4. There will be 16 quads for 4 X 4 – quad 1: 1-16...quad 16: 16-12(all 16 pixels with wrap-around). For each quad obtained above, a best label is found. This best label would either be the best of the best specific class or the best generic class. The label information for each quad is stored in the A_model data structure. In addition to finding the best label for a quad, its corresponding mixture of different specific classes and log likelihood are also calculated. These are stored in A_mix, and A_log respectively. Step 2 – SetTour: This accepts the log likelihood for the set of quads from step 1; and the categorical data to decide whether to split a quad or not. It returns a data structure called A_tour which has the split value for each quad. A 1 indicates a split and a 0 indicates no-split. Note that when a quad is split, it creates 4 equal parts. Step 3 – EstLandCover: This will use the information from Step 1 and Step 2; apply the concept of mixlets to generate the map and then the TI to reduce the “blockiness” in the final image. Step 4 – ViewMSMG: This will generate the actual map – one with colors and in the form of an image – using the data from Step 3.