Esempio n. 1
0
 public Rule(Symbolizer symbolizer, int?minZoom = null, int?maxZoom = null, FeatureFilter filter = null)
 {
     Symbolizer = symbolizer;
     MinZoom    = minZoom;
     MaxZoom    = maxZoom;
     Filter     = filter;
 }
Esempio n. 2
0
        public async Task <ActionResult> ListFeatures(FeatureParameters parameters)
        {
            ValidateFeatureParameters(parameters, FeatureParametersValidator.NoValidation);

            var filter = new FeatureFilter()
            {
                FilterMessage = parameters.FilterMessage,
                CarLine       = parameters.CarLine,
                ModelYear     = parameters.ModelYear,
                Gateway       = parameters.Gateway,
                Action        = FeatureAction.Features
            };

            filter.InitialiseFromJson(parameters);

            var results = await FeatureViewModel.GetModel(DataContext, filter);

            var jQueryResult = new JQueryDataTableResultModel(results);

            foreach (var result in results.Features.CurrentPage)
            {
                jQueryResult.aaData.Add(result.ToJQueryDataTableResult());
            }

            return(Json(jQueryResult));
        }
 public FeatureSelectionAnalysis(String _name, SpaceModel _space, FeatureFilter _filter, Int32 _FSl)
 {
     name = _name;
     //space = _space.Clone();
     inputTerms   = _space.terms.Clone();
     filter       = _filter.CloneViaXML();
     filter.limit = _FSl;
 }
        private static async Task <IEnumerable <FdpFeature> > ListFeatures(IDataContext context, TakeRateDocument forDocument)
        {
            if (forDocument.UnderlyingOxoDocument is EmptyOxoDocument)
            {
                return(Enumerable.Empty <FdpFeature>());
            }

            return(await context.Vehicle.ListFeatures(FeatureFilter.FromOxoDocumentId(forDocument.UnderlyingOxoDocument.Id)));
        }
Esempio n. 5
0
        public async Task <ActionResult> FeaturePage(FeatureParameters parameters)
        {
            var filter = new FeatureFilter()
            {
                PageIndex = PageIndex,
                PageSize  = PageSize
            };

            return(View(await FeatureViewModel.GetModel(DataContext, filter)));
        }
        private static FeatureViewModel GetFullAndPartialViewModel(IDataContext context,
                                                                   FeatureFilter filter)
        {
            var model = new FeatureViewModel(SharedModelBase.GetBaseModel(context))
            {
                Configuration = context.ConfigurationSettings,
            };

            HydrateModelWithCommonProperties(model, context);

            return(model);
        }
Esempio n. 7
0
        /// <summary>
        /// Specify a feature check to the endpoint(s).
        /// </summary>
        /// <typeparam name="TBuilder"><see cref="IEndpointConventionBuilder"/></typeparam>
        /// <param name="builder">The endopoint convention builder.</param>
        /// <param name="names">A coma separated list of features names to be evaluated.</param>
        /// <param name="productName">The product name to be checked with the <paramref name="featureName"/> parameter.</param>
        /// <returns>The original convention builder to be chained.</returns>
        public static TBuilder RequireFeature <TBuilder>(this TBuilder builder, string names, string productName = null) where TBuilder : IEndpointConventionBuilder
        {
            builder.Add(endpointbuilder =>
            {
                var metadata = new FeatureFilter(names, productName);

                endpointbuilder.Metadata
                .Add(metadata);
            });

            return(builder);
        }
Esempio n. 8
0
        public async Task <ActionResult> ContextMenu(FeatureParameters parameters)
        {
            ValidateFeatureParameters(parameters, FeatureParametersValidator.FeatureIdentifier);

            var filter = FeatureFilter.FromParameters(parameters);

            filter.Action = FeatureAction.Feature;

            var derivativeView = await FeatureViewModel.GetModel(DataContext, filter);

            return(PartialView("_ContextMenu", derivativeView));
        }
Esempio n. 9
0
        public void render3d(Project project, SceneManager sceneMgr)
        {
            SharpMap.Map myMap = new SharpMap.Map();

            foreach (BuildLayer layer in project.getLayers())
            {
                Source source = layer.getSource();

                BoundingBox    envelope = new BoundingBox(-1000.0, -1000.0, 1000.0, 1000.0);//TODO
                FeatureDataSet ds       = new FeatureDataSet();
                source.DataSource.Open();
                source.DataSource.ExecuteIntersectionQuery(envelope, ds);
                source.DataSource.Close();

                FeatureDataTable features = (FeatureDataTable)ds.Tables[0];

                //El codigo del PFC

                //**********************************************************************************************************

                //Show map

                //Filters
                FilterGraph graph = project.getFilterGraph(source.getName());
                if (graph != null)
                {
                    graph.Successors();

                    FilterEnv   env  = new FilterEnv(sceneMgr, source.getName());
                    FeatureList list = Feature.DataTableToList(features);

                    if (graph.getFilter(1) is FeatureFilter)
                    {
                        FeatureFilter filter = (FeatureFilter)graph.getFilter(1);
                        FeatureList   l      = filter.process(list, env);
                    }
                    else if (graph.getFilter(1) is FragmentFilter)
                    {
                        FragmentFilter filter = (FragmentFilter)graph.getFilter(1);
                        FragmentList   l      = filter.process(list, env);
                    }
                }

                //**********************************************************************************************************
            }
        }
Esempio n. 10
0
        public FeatureFilter GetFilter()
        {
            var filter = new FeatureFilter();

            foreach (MapzenFeatureCollection collection in Enum.GetValues(typeof(MapzenFeatureCollection)))
            {
                if ((FeatureCollection & collection) != 0)
                {
                    filter.CollectionNameSet.Add(collection.ToString().ToLower());
                }
            }

            if (Matchers == null || Matchers.Count == 0)
            {
                return(filter);
            }
            else
            {
                IFeatureMatcher[] predicates = Matchers.Select(m => m.GetFeatureMatcher()).ToArray();
                switch (Combiner)
                {
                case MatcherCombiner.None:
                    filter.Matcher = predicates.First();
                    break;

                case MatcherCombiner.AllOf:
                    filter.Matcher = FeatureMatcher.AllOf(predicates);
                    break;

                case MatcherCombiner.AnyOf:
                    filter.Matcher = FeatureMatcher.AnyOf(predicates);
                    break;

                case MatcherCombiner.NoneOf:
                    filter.Matcher = FeatureMatcher.NoneOf(predicates);
                    break;

                default:
                    break;
                }
            }

            return(filter);
        }
Esempio n. 11
0
        public FdpFeature FdpFeatureGet(FeatureFilter filter)
        {
            FdpFeature retVal = new EmptyFdpFeature();

            using (IDbConnection conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para = new DynamicParameters();
                    para.Add("@FdpFeatureId", filter.FeatureId.GetValueOrDefault(), DbType.Int32);
                    retVal = conn.Query <FdpFeature>("dbo.Fdp_Feature_Get", para, commandType: CommandType.StoredProcedure).FirstOrDefault();
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }
            return(retVal);
        }
Esempio n. 12
0
        public IEnumerable <FdpFeature> FeatureGetManyByDocumentId(FeatureFilter filter)
        {
            var retVal = Enumerable.Empty <FdpFeature>();

            using (var conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para = new DynamicParameters();
                    para.Add("@DocumentId", filter.DocumentId.Value, DbType.Int32);

                    retVal = conn.Query <FdpFeature>("Fdp_ProgrammeFeature_GetMany", para, commandType: CommandType.StoredProcedure);
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }
            return(retVal);
        }
        public static async Task <FeatureViewModel> GetModel(IDataContext context, FeatureFilter featureFilter)
        {
            FeatureViewModel model = null;

            if (featureFilter.Action == FeatureAction.Delete || featureFilter.Action == FeatureAction.Feature)
            {
                model = await GetFullAndPartialViewModelForFeature(context, featureFilter);
            }
            else if (featureFilter.Action == FeatureAction.Features)
            {
                model = await GetFullAndPartialViewModelForFeatures(context, featureFilter);
            }
            else
            {
                model = GetFullAndPartialViewModel(context, featureFilter);
            }
            if (featureFilter.Action != FeatureAction.NotSet)
            {
                model.IdentifierPrefix = Enum.GetName(featureFilter.Action.GetType(), featureFilter.Action);
            }

            return(model);
        }
Esempio n. 14
0
        private void ExtractFeature(FeatureFilter featureFilter, double[] centerPoint)
        {
            using (var fileStream = File.OpenRead(FeatureConfig.CityOSMData.GetPathInStreamingAssets()))
            {
                var membersFilter       = featureFilter.RelationMembers;
                var relationMembersTags = membersFilter.Select(rm => rm.Tags).ToArray();

                var source = new PBFOsmStreamSource(fileStream);

                IEnumerable <OsmGeo> filtered = from osmGeo in source
                                                where osmGeo.Type == OsmGeoType.Node ||
                                                osmGeo.Type == OsmGeoType.Way ||
                                                (osmGeo.Type == OsmGeoType.Relation && osmGeo.Tags != null && DoTagsMatch(osmGeo.Tags, featureFilter.Tags))
                                                select osmGeo;

                List <Node> nodes = new List <Node>();
                List <Way>  ways  = new List <Way>();
                List <OsmSharp.Relation> relations = new List <OsmSharp.Relation>();

                foreach (var geo in filtered)
                {
                    switch (geo.Type)
                    {
                    case OsmGeoType.Node:
                        nodes.Add(geo as Node);
                        break;

                    case OsmGeoType.Way:
                        if (geo.Tags != null && DoTagsMatch(geo.Tags, relationMembersTags))
                        {
                            ways.Add(geo as Way);
                        }
                        break;

                    case OsmGeoType.Relation:
                        if (geo.Tags != null && (DoTagsMatch(geo.Tags, featureFilter.Tags) || DoTagsMatch(geo.Tags, relationMembersTags)))
                        {
                            relations.Add(geo as OsmSharp.Relation);
                        }
                        break;
                    }
                }

                filtered = null;

                UnityEngine.Debug.Log("Nodes: " + nodes.Count);
                UnityEngine.Debug.Log("Ways: " + ways.Count);
                UnityEngine.Debug.Log("Relations: " + relations.Count);

                var featureRelations = new List <Relation>();
                var featureLines     = new List <Line>();

                // Extract feature relations
                for (int r = 0; r < relations.Count; r++)
                {
                    var relationGeo = relations[r];

                    var relationMembers = GetRelationMembers(relationGeo);

                    var relation = new Relation
                    {
                        Id   = relationGeo.Id.Value,
                        Type = Type.Relation,
                        Tags = featureFilter.Tags.AllOfTags.Select(tso => new Tag()
                        {
                            Key = tso.Key, Value = tso.Value
                        }).ToArray(),
                        Members = relationMembers
                    };

                    featureRelations.Add(relation);

                    ExtractLines(relationMembers);
                }

                // Extract relation members
                RelationMember[] GetRelationMembers(OsmSharp.Relation relationGeo)
                {
                    var members = new List <RelationMember>();

                    for (int mf = 0; mf < membersFilter.Length; mf++)
                    {
                        var memberFilter = membersFilter[mf];

                        var osmMembers = relationGeo.Members
                                         .Where(m => GetGeoType(m.Type) == memberFilter.Type && m.Role == memberFilter.Role).ToArray();

                        for (int m = 0; m < osmMembers.Length; m++)
                        {
                            var osmMember = osmMembers[m];

                            OsmGeo osmMemberGeo = null;
                            switch (osmMember.Type)
                            {
                            case OsmGeoType.Node:
                                osmMemberGeo = nodes.FirstOrDefault(geo => geo.Id.Value == osmMember.Id);
                                break;

                            case OsmGeoType.Way:
                                osmMemberGeo = ways.FirstOrDefault(geo => geo.Id.Value == osmMember.Id);
                                break;

                            case OsmGeoType.Relation:
                                osmMemberGeo = relations.FirstOrDefault(geo => geo.Id.Value == osmMember.Id);
                                break;
                            }

                            if (osmMemberGeo == null)
                            {
                                UnityEngine.Debug.Log("Relation Member tags don't match: " + osmMember.Id);
                                continue;
                            }

                            if (DoTagsMatch(osmMemberGeo.Tags, memberFilter.Tags))
                            {
                                var member = new RelationMember
                                {
                                    Id   = osmMember.Id,
                                    Type = GetGeoType(osmMember.Type),
                                    Role = osmMember.Role
                                };

                                members.Add(member);
                            }
                        }
                    }

                    return(members.ToArray());
                }

                // Extract feature lines and points
                void ExtractLines(RelationMember[] members)
                {
                    // Get node ids
                    Dictionary <long, long[]> memberNodes = new Dictionary <long, long[]>();
                    List <long> nodeIds = new List <long>();

                    for (int m = 0; m < members.Length; m++)
                    {
                        var member = members[m];
                        if (member.Type == Type.Line)
                        {
                            var way = ways.FirstOrDefault(w => w.Id == member.Id);
                            memberNodes.Add(way.Id.Value, way.Nodes);
                            nodeIds.AddRange(way.Nodes);
                        }
                    }

                    // Get nodes
                    List <Node> memberNodesGeo = new List <Node>();

                    for (int ni = 0; ni < nodeIds.Count; ni++)
                    {
                        memberNodesGeo.Add(nodes.FirstOrDefault(n => n.Id == nodeIds[ni]));
                    }

                    // Extract points
                    for (int m = 0; m < members.Length; m++)
                    {
                        var member        = members[m];
                        var points        = new List <Point>();
                        var memberNodeIds = memberNodes.FirstOrDefault(mn => mn.Key == member.Id).Value;
                        for (int ni = 0; ni < memberNodeIds.Length; ni++)
                        {
                            var node = memberNodesGeo.FirstOrDefault(n => n.Id.Value == memberNodeIds[ni]);
                            points.Add(ToPoint(node, centerPoint));
                        }

                        var line = new Line
                        {
                            Id     = member.Id,
                            Points = points.ToArray()
                        };

                        featureLines.Add(line);
                    }
                }

                var feature = new Feature
                {
                    Relations = featureRelations.ToArray(),
                    Lines     = featureLines.ToArray()
                };

                var bytes = MessagePackSerializer.Serialize(feature);

                var featureFileName = FeatureConfig.CityName.Value + nameSeparator + featureFilter.Name + FeatureConfig.GeoFormat;
                var featureDataPath = Path.Combine(FeatureConfig.FeaturesDataPath.GetPathInStreamingAssets(), featureFileName);
                File.WriteAllBytes(featureDataPath, bytes);
            }
        }
Esempio n. 15
0
 /// <summary>
 /// 根据条件获取3GX数据
 /// </summary>
 /// <param name="filter"></param>
 /// <returns></returns>
 public XmlDocument GetFeatures(FeatureFilter filter)
 {
     return(ObjectCreate <string> .CreateIGGGX("GGGXBusinesscs").GetFeatures(filter));
 }
Esempio n. 16
0
        public PagedResults <FdpFeature> FdpFeatureGetMany(FeatureFilter filter)
        {
            PagedResults <FdpFeature> retVal = null;

            using (IDbConnection conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para                = DynamicParameters.FromCDSId(CurrentCDSID);
                    var totalRecords        = 0;
                    var totalDisplayRecords = 0;

                    if (!string.IsNullOrEmpty(filter.CarLine))
                    {
                        para.Add("@CarLine", filter.CarLine, DbType.String);
                    }
                    if (!string.IsNullOrEmpty(filter.ModelYear))
                    {
                        para.Add("@ModelYear", filter.ModelYear, DbType.String);
                    }
                    if (!string.IsNullOrEmpty(filter.Gateway))
                    {
                        para.Add("@Gateway", filter.Gateway, DbType.String);
                    }
                    para.Add("@DocumentId", filter.DocumentId, DbType.Int32);
                    if (filter.PageIndex.HasValue)
                    {
                        para.Add("@PageIndex", filter.PageIndex.Value, DbType.Int32);
                    }
                    if (filter.PageSize.HasValue)
                    {
                        para.Add("@PageSize", filter.PageSize.HasValue ? filter.PageSize.Value : 10, DbType.Int32);
                    }
                    if (filter.SortIndex.HasValue)
                    {
                        para.Add("@SortIndex", filter.SortIndex.Value, DbType.Int32);
                    }
                    if (filter.SortDirection != SortDirection.NotSet)
                    {
                        var direction = filter.SortDirection == SortDirection.Descending ? "DESC" : "ASC";
                        para.Add("@SortDirection", direction, DbType.String);
                    }
                    if (filter.ProgrammeId.HasValue)
                    {
                        para.Add("@ProgrammeId", filter.ProgrammeId, DbType.Int32);
                    }
                    if (!string.IsNullOrEmpty(filter.Gateway))
                    {
                        para.Add("@Gateway", filter.Gateway, DbType.String);
                    }
                    if (!string.IsNullOrEmpty(filter.FilterMessage))
                    {
                        para.Add("@Filter", filter.FilterMessage, DbType.String);
                    }
                    para.Add("@TotalPages", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalDisplayRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);

                    var results = conn.Query <FdpFeature>("dbo.Fdp_FeatureMapping_GetMany", para, commandType: CommandType.StoredProcedure);

                    if (results.Any())
                    {
                        totalRecords        = para.Get <int>("@TotalRecords");
                        totalDisplayRecords = para.Get <int>("@TotalDisplayRecords");
                    }
                    retVal = new PagedResults <FdpFeature>
                    {
                        PageIndex           = filter.PageIndex.HasValue ? filter.PageIndex.Value : 1,
                        TotalRecords        = totalRecords,
                        TotalDisplayRecords = totalDisplayRecords,
                        PageSize            = filter.PageSize.HasValue ? filter.PageSize.Value : totalRecords
                    };

                    var currentPage = new List <FdpFeature>();

                    foreach (var result in results)
                    {
                        currentPage.Add(result);
                    }
                    retVal.CurrentPage = currentPage;
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }
            return(retVal);
        }
Esempio n. 17
0
        /// <summary>
        /// 根据条件获取3GX数据
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        public XmlDocument GetFeatures(FeatureFilter filter)
        {
            string        sqlWhere = string.Empty;
            StringBuilder strSql   = new StringBuilder();

            strSql.Append("SELECT DISTINCT BO.*,OBJECTTYPE.BOT,OBJECTTYPE.FT  FROM BO,OBJECTTYPE");
            if (!string.IsNullOrEmpty(filter.BBox))
            {
                strSql.Append(",v_Geometry ");
            }
            if (filter.Filter != null)
            {
                strSql.Append(" ,PROPERTY PROPERTY  ");
                strSql.Append(" WHERE BO.BOTID = OBJECTTYPE.BOTID  ");
                strSql.Append(" AND PROPERTY.BOID = BO.BOID  ");

                strSql.Append(string.Format(" AND  OBJECTTYPE.FT='{0}' ", filter.FT));
                strSql.Append(" AND  BO.BOTID=OBJECTTYPE.BOTID ");
            }
            else
            {
                strSql.Append(string.Format(" WHERE  OBJECTTYPE.FT='{0}' ", filter.FT));
                strSql.Append(" AND  BO.BOTID=OBJECTTYPE.BOTID ");
            }
            //对象名称
            if (filter.BOs != null && filter.BOs.Count > 0)
            {
                string bos = string.Empty;
                for (int i = 0; i < filter.BOs.Count; i++)
                {
                    if (i == filter.BOs.Count - 1)
                    {
                        bos += "'" + filter.BOs[i].Trim() + "'";
                    }
                    else
                    {
                        bos += "'" + filter.BOs[i].Trim() + "',";
                    }
                }
                strSql.Append(string.Format(" AND  BO.NAME in {0} ", bos));
            }
            //空间范围和crs  未启用坐标范围
            if (!string.IsNullOrEmpty(filter.BBox))
            {
                strSql.Append(" AND v_Geometry.BOID=BO.BOID  ");
                strSql.Append(string.Format(" AND ( v_Geometry.GEOMETRY.STWithin(GEOGRAPHY::STGeomFromText('{0}', 4326))=1 or ", filter.BBox));
                strSql.Append(string.Format("  v_Geometry.GEOMETRY.STIntersects(GEOGRAPHY::STGeomFromText('{0}', 4326))=1  )  ", filter.BBox));
            }
            //属性
            if (filter.Filter != null)
            {
                JObject jObj = JObject.Parse(filter.Filter.ToString());
                string  bot  = SqlServerDBHelper.ExecuteQueryText <string>(string.Format("SELECT BOT FROM OBJECTTYPE WHERE FT='{0}'", filter.FT)).FirstOrDefault();
                strSql.Append(" AND " + "( " + MongoJsonToSql.JsonToSql(jObj.ToString(), bot).ToString() + " )");
            }
            DataTable         dt     = SqlServerDBHelper.GetDataTable(strSql.ToString());
            List <GeoFeature> ftList = new List <GeoFeature>();

            foreach (DataRow row in dt.Rows)
            {
                GeoFeature ft = new GeoFeature();
                ft.BOID          = row["Boid"].ToString();
                ft.BOT           = row["BOT"].ToString();
                ft.FT            = row["FT"].ToString();
                ft.NAME          = row["Name"].ToString();
                ft.AliasNameList = Comm.GetAliasNameByBoid(ft.BOID);
                ft.PropertyList  = Comm.GetPropertyByBoid(ft.BOID);
                ft.GeometryList  = Comm.GetGeometryByBoid(ft.BOID);
                ftList.Add(ft);
            }
            return(GGGXParse.ConvertFT.FeatureToGGGX(ftList));
        }
Esempio n. 18
0
        /// <summary>
        /// Gets default configuration
        /// </summary>
        /// <returns></returns>
        public static PlanesMethodSettings GetDefaultSettings()
        {
            PlanesMethodSettings output = new PlanesMethodSettings();

            output.entityMethod.instructions.Add(DocumentRenderInstruction.GetDescriptionInstruction());
            output.entityMethod.instructions.Add(DocumentRenderInstruction.GetTitleInstruction());
            output.entityMethod.instructions.Add(DocumentRenderInstruction.GetBodyTextInstruction());

            //  output.entityMethod.blenderOptions = DocumentBlenderFunctionOptions.binaryAggregation | DocumentBlenderFunctionOptions.pageLevel;
            output.entityMethod.filterFunctionName = ""; // nameof(DocumentEntropyFunction);
            output.entityMethod.filterLimit        = 5;



            output.corpusMethod.stemmer   = nameof(EnglishStemmer);
            output.corpusMethod.tokenizer = nameof(TokenizerBasic);
            output.corpusMethod.transliterationRuleSetId = "";

            #region PREPARE Weighting model
            var weightModel = new FeatureWeightModel();
            weightModel.LocalFunction = new Weighting.Local.TermFrequencyFunction();

            var globalFactor = new FeatureWeightFactor();
            globalFactor.Settings.functionName = nameof(IDFElement);
            weightModel.GlobalFactors.Add(globalFactor);

            output.corpusMethod.WeightModel = weightModel;
            #endregion


            var featureFilter = new FeatureFilter();
            featureFilter.limit = 8000;
            //featureFilter.
            //featureFilter.functionSettings = new GlobalFunctionSettings();
            //featureFilter.functionSettings.functionName = nameof(CollectionTDPElement);
            //featureFilter.functionSettings.weight = 1.0;
            //featureFilter.functionSettings.flags.Add(Weighting.Metrics.TDPFactor.chi.ToString());
            output.corpusMethod.filter = featureFilter;

            /*
             * output.vectorMethod.constructor = new Feature.Settings.FeatureVectorConstructorSettings();
             * dimensionSpecification dimSpec = new dimensionSpecification();
             * dimSpec.functionName = nameof(CosineSimilarityFunction);
             * dimSpec.type = FeatureVectorDimensionType.similarityFunction;
             * output.vectorMethod.constructor.labelDimensions.Add(dimSpec);
             */

            //output.vectorMethod.constructor = new Feature.Settings.FeatureVectorConstructorSettings();
            //dimensionSpecification dimSpec = new dimensionSpecification();
            ////dimSpec.functionName = nameof(CosineSimilarityFunction);
            //dimSpec.type = FeatureVectorDimensionType.directTermWeight;
            //output.vectorMethod.constructor.featureDimensions.Add(dimSpec);


            output.featureMethod.classifierSettings.type = Classifiers.ClassifierType.multiClassSVM;
            output.featureMethod.classifierSettings.lossFunctionForTraining = Accord.MachineLearning.VectorMachines.Learning.Loss.L2;


            /*
             * output.featureMethod.classifierSettings.type = Classifiers.ClassifierType.kNearestNeighbors;
             * output.featureMethod.classifierSettings.lossFunctionForTraining = Accord.MachineLearning.VectorMachines.Learning.Loss.L2;
             * output.featureMethod.classifierSettings.kNN_k = 4;
             */

            return(output);
        }
        private static async Task <FeatureViewModel> GetFullAndPartialViewModelForFeature(IDataContext context,
                                                                                          FeatureFilter filter)
        {
            var model = new FeatureViewModel()
            {
                PageIndex     = filter.PageIndex.HasValue ? filter.PageIndex.Value : 1,
                PageSize      = filter.PageSize.HasValue ? filter.PageSize.Value : Int32.MaxValue,
                Configuration = context.ConfigurationSettings
            };
            var feature = await context.Vehicle.GetFdpFeature(filter);

            var programmeFilter = new ProgrammeFilter()
            {
                ProgrammeId = feature.ProgrammeId,
                Gateway     = feature.Gateway
            };

            HydrateModelWithCommonProperties(model, context, programmeFilter);

            if (!(feature is EmptyFdpFeature))
            {
                feature.Programme = model.Programmes.FirstOrDefault(p => p.Id == feature.ProgrammeId.GetValueOrDefault());
            }
            model.Feature = feature;

            return(model);
        }
 public async Task <IEnumerable <FdpFeature> > ListFeatures(FeatureFilter filter)
 {
     return(await Task.FromResult(_featureDataStore.FeatureGetManyByDocumentId(filter)));
 }
        private static async Task <FeatureViewModel> GetFullAndPartialViewModelForFeatures(IDataContext context,
                                                                                           FeatureFilter filter)
        {
            var baseModel = SharedModelBase.GetBaseModel(context);
            var model     = new FeatureViewModel()
            {
                PageIndex      = filter.PageIndex.HasValue ? filter.PageIndex.Value : 1,
                PageSize       = filter.PageSize.HasValue ? filter.PageSize.Value : Int32.MaxValue,
                Configuration  = context.ConfigurationSettings,
                CurrentUser    = baseModel.CurrentUser,
                CurrentVersion = baseModel.CurrentVersion
            };

            var programmeFilter = new ProgrammeFilter()
            {
                ProgrammeId = filter.ProgrammeId,
                Gateway     = filter.Gateway
            };

            HydrateModelWithCommonProperties(model, context, programmeFilter);

            model.Features = await context.Vehicle.ListFdpFeatures(filter);

            model.TotalPages          = model.Features.TotalPages;
            model.TotalRecords        = model.Features.TotalRecords;
            model.TotalDisplayRecords = model.Features.TotalDisplayRecords;

            foreach (var feature in model.Features.CurrentPage)
            {
                feature.Programme = model.Programmes.FirstOrDefault(p => p.Id == feature.ProgrammeId.GetValueOrDefault());
            }

            return(model);
        }
 public async Task <FdpFeature> GetFdpFeature(FeatureFilter filter)
 {
     return(await Task.FromResult(_featureDataStore.FdpFeatureGet(filter)));
 }
 public async Task <PagedResults <FdpFeature> > ListFdpFeatures(FeatureFilter filter)
 {
     return(await Task.FromResult(_featureDataStore.FdpFeatureGetMany(filter)));
 }
Esempio n. 24
0
        private void ExtractFeature(FeatureFilter featureFilter, double[] centerPoint)
        {
            using (var fileStream = File.OpenRead(FeatureConfig.CityOSMData.GetPathInStreamingAssets()))
            {
                var source = new PBFOsmStreamSource(fileStream);

                var filtered = from osmGeo in source
                               where osmGeo.Type == OsmGeoType.Node ||
                               osmGeo.Type == OsmGeoType.Way ||
                               (osmGeo.Type == OsmGeoType.Relation && osmGeo.Tags != null && DoTagsMatch(osmGeo.Tags, featureFilter.Tags))
                               select osmGeo;

                var complete = filtered.ToComplete();

                var relationsCompleted = complete.Where(x => x.Type == OsmGeoType.Relation).ToArray();
                var relations          = new Relation[relationsCompleted.Length];
                var lines = new List <Line>();

                UnityEngine.Debug.Log(relationsCompleted.Length);

                for (int r = 0; r < relations.Length; r++)
                {
                    // Get RelationMembers
                    foreach (OsmGeo osmgeo in filtered)
                    {
                        var osmRelation = osmgeo as OsmSharp.Relation;
                        if (osmRelation == null || osmRelation.Id != relationsCompleted[r].Id)
                        {
                            continue;
                        }

                        var relationMembers = GetMembers(filtered.ToArray(), osmRelation, featureFilter.RelationMembers);
                        UnityEngine.Debug.Log(relationMembers.Length);

                        var relation = new Relation
                        {
                            Id   = osmRelation.Id.Value,
                            Type = Type.Relation,
                            Tags = featureFilter.Tags.AllOfTags.Select(tso => new Tag()
                            {
                                Key = tso.Key, Value = tso.Value
                            }).ToArray(),
                            Members = relationMembers
                        };

                        relations[r] = relation;
                    }

                    var relationMemberIds = relations[r].Members.Select(rm => rm.Id);

                    // Get Ids
                    Dictionary <long, long[]> memberNodes = new Dictionary <long, long[]>();
                    List <long> nodeIds = new List <long>();
                    foreach (OsmGeo osmgeo in filtered)
                    {
                        var way = osmgeo as Way;
                        if (way == null || !relationMemberIds.Contains(way.Id.Value))
                        {
                            continue;
                        }

                        memberNodes.Add(way.Id.Value, way.Nodes);
                        nodeIds.AddRange(way.Nodes);
                    }

                    // Get Nodes
                    List <Node> nodes = new List <Node>();
                    foreach (OsmGeo osmGeo in filtered)
                    {
                        var node = osmGeo as Node;
                        if (node == null || !nodeIds.Contains(node.Id.Value))
                        {
                            continue;
                        }
                        nodes.Add(node);
                    }

                    // Add Relation Member Points
                    for (int m = 0; m < relations[r].Members.Length; m++)
                    {
                        var member        = relations[r].Members[m];
                        var points        = new List <Point>();
                        var memberNodeIds = memberNodes.FirstOrDefault(mn => mn.Key == member.Id).Value;
                        for (int ni = 0; ni < memberNodeIds.Length; ni++)
                        {
                            var node = nodes.FirstOrDefault(n => n.Id.Value == memberNodeIds[ni]);
                            points.Add(ToPoint(node, centerPoint));
                        }

                        var line = new Line
                        {
                            Id     = member.Id,
                            Points = points.ToArray()
                        };

                        lines.Add(line);
                    }
                }

                var feature = new Feature
                {
                    Relations = relations,
                    Lines     = lines.ToArray()
                };

                var bytes = MessagePackSerializer.Serialize(feature);

                var featureFileName = FeatureConfig.CityName.Value + nameSeparator + featureFilter.Name + FeatureConfig.GeoFormat;
                var featureDataPath = Path.Combine(FeatureConfig.FeaturesDataPath.GetPathInStreamingAssets(), featureFileName);
                File.WriteAllBytes(featureDataPath, bytes);
            }
        }
        private static async Task <ImportViewModel> GetFullAndPartialViewModelForException(IDataContext context,
                                                                                           ImportQueueFilter filter)
        {
            var model = new ImportViewModel(GetBaseModel(context))
            {
                PageIndex        = filter.PageIndex ?? 1,
                PageSize         = filter.PageSize ?? int.MaxValue,
                Configuration    = context.ConfigurationSettings,
                CurrentException = await context.Import.GetException(filter)
            };

            var programmeFilter = new ProgrammeFilter(model.CurrentException.ProgrammeId)
            {
                DocumentId = model.CurrentException.DocumentId
            };
            var featureFilter = new FeatureFilter {
                ProgrammeId = model.CurrentException.ProgrammeId, DocumentId = model.CurrentException.DocumentId
            };

            model.Programme           = context.Vehicle.GetProgramme(programmeFilter);
            programmeFilter.VehicleId = model.Programme.VehicleId;

            model.Gateway                  = model.CurrentException.Gateway;
            model.AvailableDocuments       = context.Vehicle.ListPublishedDocuments(programmeFilter);
            model.AvailableEngines         = context.Vehicle.ListEngines(programmeFilter);
            model.AvailableTransmissions   = context.Vehicle.ListTransmissions(programmeFilter);
            model.AvailableBodies          = context.Vehicle.ListBodies(programmeFilter);
            model.AvailableSpecialFeatures = await context.TakeRate.ListSpecialFeatures(programmeFilter);

            model.AvailableMarkets = await context.Market.ListAvailableMarkets();

            model.AvailableFeatures = await context.Vehicle.ListFeatures(featureFilter);

            model.AvailableFeatureGroups = context.Vehicle.ListFeatureGroups(programmeFilter);
            model.AvailableTrimLevels    = context.Vehicle.ListTrimLevels(programmeFilter);

            var derivativeFilter = new DerivativeFilter
            {
                CarLine     = model.Programme.VehicleName,
                ModelYear   = model.Programme.ModelYear,
                Gateway     = model.Gateway,
                ProgrammeId = model.CurrentException.ProgrammeId,
            };

            model.AvailableDerivatives       = context.Vehicle.ListDerivatives(derivativeFilter);
            model.AvailableImportDerivatives = await ListImportDerivatives(model.CurrentException.ImportQueueId, context);

            model.AvailableImportTrimLevels = await ListImportTrimLevels(model.CurrentException.ImportQueueId, context);

            model.AvailableImportFeatures = await ListImportFeatures(model.CurrentException.ImportQueueId, context);

            derivativeFilter.Bmc = model.CurrentException.ImportDerivativeCode;

            var trimFilter = new TrimMappingFilter
            {
                CarLine        = model.Programme.VehicleName,
                ModelYear      = model.Programme.ModelYear,
                Gateway        = model.Gateway,
                DocumentId     = model.CurrentException is EmptyOxoDocument ? (int?)null : model.CurrentException.DocumentId,
                IncludeAllTrim = false
            };

            model.AvailableTrim = (await context.Vehicle.ListOxoTrim(trimFilter)).CurrentPage;
            model.Document      = model.AvailableDocuments.FirstOrDefault(d => d.Id == model.CurrentException.DocumentId);

            return(model);
        }
Esempio n. 26
0
 public static void SetReportDataFields(this classificationReport report, IClassifier classifier, FeatureFilter filter, FeatureWeightModel featureWeight)
 {
     report.data.Add(nameof(ReportDataFieldEnum.Classifier), classifier.GetSignature(), "Signature of the classification algorithm");
     report.data.Add(nameof(ReportDataFieldEnum.FeatureSelection), filter.GetSignature(), "Signature of feature selection filter model");
     report.data.Add(nameof(ReportDataFieldEnum.FeatureWeighting), featureWeight.GetSignature(), "Signature of feature weight model");
 }
Esempio n. 27
0
        /// <summary>
        /// 根据条件获取3GX数据
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        public XmlDocument GetFeatures(FeatureFilter filter)
        {
            string        sqlWhere = string.Empty;
            StringBuilder strSql   = new StringBuilder();

            strSql.Append("SELECT DISTINCT BO.*,OBJECTTYPE.BOT,OBJECTTYPE.FT  FROM BO,OBJECTTYPE,Geometry");
            if (filter.Filter != null)
            {
                strSql.Append(" ,PROPERTY PROPERTY  ");
                strSql.Append(" WHERE BO.BOTID = OBJECTTYPE.BOTID  ");
                strSql.Append(" AND PROPERTY.BOID = BO.BOID  ");
                strSql.Append(" AND GEOMETRY.BOID=BO.BOID  ");
                strSql.Append(string.Format(" AND  OBJECTTYPE.FT='{0}' ", filter.FT));
                strSql.Append(" AND  BO.BOTID=OBJECTTYPE.BOTID  AND BO.BOID=GEOMETRY.BOID  ");
            }
            else
            {
                strSql.Append(string.Format(" WHERE  OBJECTTYPE.FT='{0}' ", filter.FT));
                strSql.Append(" AND  BO.BOTID=OBJECTTYPE.BOTID  AND BO.BOID=GEOMETRY.BOID  ");
            }
            //对象名称
            if (filter.BOs != null && filter.BOs.Count > 0)
            {
                string bos = string.Empty;
                for (int i = 0; i < filter.BOs.Count; i++)
                {
                    if (i == filter.BOs.Count - 1)
                    {
                        bos += "'" + filter.BOs[i].Trim() + "'";
                    }
                    else
                    {
                        bos += "'" + filter.BOs[i].Trim() + "',";
                    }
                }
                strSql.Append(string.Format(" AND  BO.NAME in {0} ", bos));
            }
            //空间范围和crs  未启用坐标范围
            if (!string.IsNullOrEmpty(filter.BBox))
            {
                strSql.Append(" AND SDO_FILTER(GEOMETRY.GEOMETRY, ");
                strSql.Append(" SDO_GEOMETRY('" + filter.BBox + "',4326), ");
                strSql.Append(" 'QUERYTYPE=WINDOW') = 'TRUE' ");
            }
            //属性
            if (filter.Filter != null)
            {
                JObject jObj = JObject.Parse(filter.Filter.ToString());
                string  bot  = OracleDBHelper.OracleHelper.ExecuteQueryText <string>(string.Format("SELECT BOT FROM OBJECTTYPE WHERE FT='{0}'", filter.FT)).FirstOrDefault();
                strSql.Append(" AND " + "( " + MongoJsonToSql.JsonToSql(jObj.ToString(), bot).ToString() + " )");
            }
            DataTable         dt     = OracleDBHelper.OracleHelper.ExecuteQueryText(strSql.ToString()).Tables[0];
            List <GeoFeature> ftList = new List <GeoFeature>();

            foreach (DataRow row in dt.Rows)
            {
                GeoFeature ft = new GeoFeature();
                ft.BOID          = row["Boid"].ToString();
                ft.BOT           = row["BOT"].ToString();
                ft.FT            = row["FT"].ToString();
                ft.NAME          = row["Name"].ToString();
                ft.CLASS         = GF.Server.Oracle.Comm.GetClassByBoid(ft.BOID);
                ft.AliasNameList = Comm.GetAliasNameByBoid(ft.BOID);
                ft.PropertyList  = Comm.GetPropertyByBoid(ft.BOID);
                ft.GeometryList  = Comm.GetGeometryByBoid(ft.BOID);
                ftList.Add(ft);
            }
            return(GGGXParse.ConvertFT.FeatureToGGGX(ftList));
        }
Esempio n. 28
0
 public FilterStyle(string name)
 {
     this.name        = name;
     this.layerStyles = new List <LayerStyle>();
     this.filter      = new FeatureFilter();
 }