Преглед изворни кода

iclass backend: make subgroup optional

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@57709 15284696-431f-4ddb-bdfa-cd5b030d7da7
Štěpán Turek пре 11 година
родитељ
комит
6214629352
1 измењених фајлова са 23 додато и 7 уклоњено
  1. 23 7
      lib/imagery/iclass.c

+ 23 - 7
lib/imagery/iclass.c

@@ -100,7 +100,8 @@ int I_iclass_analysis(IClass_statistics * statistics, struct Ref *refer,
    \brief Read files for the specified group subgroup into the Ref structure.
 
    \param group_name name of imagery group
-   \param subgroup_name name of imagery subgroup
+   \param subgroup_name name of imagery subgroup 
+   \param subgroup_name if it is NULL, bands from group will be used
    \param[out] refer pointer to band files structure
 
    \return 1 on success
@@ -115,21 +116,36 @@ int I_iclass_init_group(const char *group_name, const char *subgroup_name,
 	    group_name, subgroup_name);
     I_init_group_ref(refer);	/* called in I_get_group_ref */
 
-    I_get_subgroup_ref(group_name, subgroup_name, refer);
+    if (subgroup_name)
+	I_get_subgroup_ref(group_name, subgroup_name, refer);
+    else
+	I_get_group_ref(group_name, refer);
 
     for (n = 0; n < refer->nfiles; n++) {
 	if (G_find_raster(refer->file[n].name, refer->file[n].mapset) == NULL) {
-	    G_warning(_("Raster map <%s@%s> in subgroup "
-			"<%s> does not exist"), refer->file[n].name,
-		      refer->file[n].mapset, subgroup_name);
+	    if (subgroup_name)
+		G_warning(_("Raster map <%s@%s> in subgroup "
+			    "<%s> does not exist"), refer->file[n].name,
+			  refer->file[n].mapset, subgroup_name);
+	    else
+		G_warning(_("Raster map <%s@%s> in group "
+			    "<%s> does not exist"), refer->file[n].name,
+			  refer->file[n].mapset, group_name);
+
 	    I_free_group_ref(refer);
 	    return 0;
 	}
     }
 
     if (refer->nfiles <= 1) {
-	G_warning(_("Subgroup <%s> does not have enough files (it has %d files)"),
-		  subgroup_name, refer->nfiles);
+	if (subgroup_name)
+	    G_warning(_
+		      ("Subgroup <%s> does not have enough files (it has %d files)"),
+		      subgroup_name, refer->nfiles);
+	else
+	    G_warning(_
+		      ("Group <%s> does not have enough files (it has %d files)"),
+		      group_name, refer->nfiles);
 	I_free_group_ref(refer);
 	return 0;
     }