示例#1
0
        private void lShannonsDiversityIndex(string filename, string epsg, int fieldIndex)
        {
            try
            {
                //Obtenemos un arraylist con toda la colección de registros del campo
                ArrayList       fieldRows = new ArrayList();
                SchemaDB_Reader collect   = new SchemaDB_Reader(filename, fieldIndex);
                fieldRows = collect.FieldValues;

                //obtenemos un arraylist con las categorias encontradas en el campo
                ArrayList       categories = new ArrayList();
                SchemaDB_Reader categ      = new SchemaDB_Reader();
                categories = categ.categories((ArrayList)fieldRows.Clone());


                C_LandscapePercent_V diversity = new C_LandscapePercent_V(filename, epsg, fieldIndex);


                double _shannonsDiversityIndexTemp = 0;

                for (int i = 0; i < diversity.CategoryNames.Count; i++)
                {
                    _shannonsDiversityIndexTemp += ((double)diversity.LandscapePercent[i] / 100) * Math.Log(((double)diversity.LandscapePercent[i] / 100));
                }

                _shannonsDiversityIndex = _shannonsDiversityIndexTemp * -1;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#2
0
        private void lSimpsonsDiversityIndex(string filename, string epsg, int fieldIndex)
        {
            try
            {
                C_LandscapePercent_V diversity = new C_LandscapePercent_V(filename, epsg, fieldIndex);

                double _simpsonsDiversityIndexTemp = 0;

                for (int i = 0; i < diversity.CategoryNames.Count; i++)
                {
                    _simpsonsDiversityIndexTemp += Math.Pow(((double)diversity.LandscapePercent[i] / 100), 2);
                }
                _simpsonsDiversityIndex = 1 - _simpsonsDiversityIndexTemp;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void landscapeMetrics(string filename, string epsg, int fieldIndex)
        {
            try
            {
                //Obtenemos un arraylist con toda la colección de registros del campo
                ArrayList       fieldRows = new ArrayList();
                SchemaDB_Reader collect   = new SchemaDB_Reader(filename, fieldIndex);
                fieldRows = collect.FieldValues;

                //obtenemos un arraylist con las categorias encontradas en el campo
                ArrayList       categories = new ArrayList();
                SchemaDB_Reader categ      = new SchemaDB_Reader();
                categories = categ.categories((ArrayList)fieldRows.Clone());

                _numLandscapeCategories = categories.Count;


                L_Area_V totalArea = new L_Area_V(filename, epsg);
                _patchRichnessDensity = ((_numLandscapeCategories / totalArea.LandscapeArea)) * 100;


                C_LandscapePercent_V diversity = new C_LandscapePercent_V(filename, epsg, fieldIndex);

                double _simpsonsDiversityIndexTemp = 0;
                double _shannonsDiversityIndexTemp = 0;

                for (int i = 0; i < diversity.CategoryNames.Count; i++)
                {
                    _shannonsDiversityIndexTemp += ((double)diversity.LandscapePercent[i] / 100) * Math.Log(((double)diversity.LandscapePercent[i] / 100));
                    _simpsonsDiversityIndexTemp += Math.Pow(((double)diversity.LandscapePercent[i] / 100), 2);
                }
                _shannonsDiversityIndex         = _shannonsDiversityIndexTemp * -1;
                _simpsonsDiversityIndex         = 1 - _simpsonsDiversityIndexTemp;
                _modifiedSimpsonsDiversityIndex = -Math.Log(_simpsonsDiversityIndexTemp);
                _shannonsEvennessIndex          = _shannonsDiversityIndex / Math.Log(_numLandscapeCategories);
                _simpsonsEvennessIndex          = _simpsonsDiversityIndex / (1 - (1 / (double)_numLandscapeCategories));
                _modifiedSimpsonsEvennessIndex  = _modifiedSimpsonsDiversityIndex / Math.Log(_numLandscapeCategories);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }